Python Django:向ForeignKey字段添加选项

Python Django:向ForeignKey字段添加选项,python,django,django-models,django-forms,Python,Django,Django Models,Django Forms,我正在尝试向外键字段添加一个选项。但这会阻止输入表单得到验证。 我不确定您是否可以在ForeignKey字段中使用choices,但您如何为这些选项提供人类可读的输出 我不希望用户能够从所有组中进行选择,也不希望显示实际的组名,因为它包含管理员的其他信息,出于外观原因,用户不应该看到这些信息。 任何关于如何实现这一目标的想法都将不胜感激 这是我的密码: 模型: from django.contrib.auth.models import Group as DjangoGroup class C

我正在尝试向
外键
字段添加一个
选项
。但这会阻止输入表单得到验证。
我不确定您是否可以在
ForeignKey
字段中使用
choices
,但您如何为这些选项提供人类可读的输出

我不希望用户能够从所有组中进行选择,也不希望显示实际的组名,因为它包含管理员的其他信息,出于外观原因,用户不应该看到这些信息。
任何关于如何实现这一目标的想法都将不胜感激

这是我的密码:

模型:

from django.contrib.auth.models import Group as DjangoGroup

class Category(models.Model):
    created_by = models.ForeignKey('auth.User', on_delete=models.PROTECT, related_name='category_author')
    last_edited_by = models.ForeignKey('auth.User', on_delete=models.PROTECT, related_name='category_editor')
    name = models.CharField(max_length = 100)
    privileges = models.ForeignKey('auth.Group', on_delete=models.PROTECT, blank=True, null=True, choices=((DjangoGroup.objects.get(pk=5), 'Test group'),))
表格:

from django import forms
from .models import *

class CategoryForm(forms.ModelForm):

    class Meta:
        model = Category
        exclude = ('created_by', 'last_edited_by',)
使用此代码,表单提供了所需的选项“testgroup”,但当我尝试提交它时,会出现以下错误:
选择一个有效的选项。TestGroup(仅用于测试目的)不是可用的选项之一。

“TestGroup(仅用于测试目的)”是我试图向用户隐藏的实际组名

我希望你能理解我想要实现的目标。我是走对了路,还是有不同的方法


提前谢谢你的回答

也许,你需要这个@A'Zammatmurodov谢谢你的回答,我看到了,老实说,我不确定我是否完全理解,但据我所知,他只是找到了一种动态限制选择的方法。这不是我所需要的,我试图改变选择的显示方式,但它们是静态的。如果我理解错了,请纠正我。