【发布时间】:2015-12-01 07:41:54
【问题描述】:
我有两个模型,Tag 和 TagGroup。
class TagGroup(models.Model):
tag_group_name = models.CharField(max_length=100)
class Tag(models.Model):
tag_name = models.CharField(max_length=100)
tag_group = models.ForeignKey(TagGroup, blank=True, null=True)
我已将TagGroup 表单作为选择字段放入模板中,以便我可以将TagGroup 分配给标签。我创建了这个表单来填充 TagGroup 查询集。
class TagGroupForm(ModelForm):
tag_group_name = forms.ModelChoiceField(queryset=TagGroup.objects.values_list('id', 'tag_group_name'), required=False)
class Meta:
model = TagGroup
fields = [
'tag_group_name'
]
我还没有看到任何明显的说明如何将 Id 分配给 Tag 表,同时仅在模板的选择字段中向用户显示 Tag 值。
目前以上显示:
几个问题:
查询集是否正确?我试过不使用“
values_list”,但它只是在模板的表单字段中显示一个“对象”?如何“隐藏” ID 以便我可以保存它,同时只在表单字段中向用户显示实际的字符串值?
已编辑以添加更新的表单:
class TagGroupForm(ModelForm):
tag_group_name = forms.ModelChoiceField(queryset=TagGroup.objects.all(), to_field_name = 'tag_group_name', required=False)
class Meta:
model = TagGroup
fields = [
'tag_group_name'
]
这现在产生以下 .. 看起来很接近 .. 表单值有一个不错的字符串,但显示给用户的实际值仍然是“TagGroup 对象”。如何让这个显示出来?
【问题讨论】:
标签: django django-models django-forms django-templates