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谢谢你的回答,我看到了,老实说,我不确定我是否完全理解,但据我所知,他只是找到了一种动态限制选择的方法。这不是我所需要的,我试图改变选择的显示方式,但它们是静态的。如果我理解错了,请纠正我。