更改 Django 表单的 empty_label

Posted

技术标签:

【中文标题】更改 Django 表单的 empty_label【英文标题】:Change empty_label for Django forms 【发布时间】:2011-12-14 18:29:28 【问题描述】:

我在更改表单的空标签时遇到了一些问题。我已经阅读了文档https://docs.djangoproject.com/en/dev/ref/forms/fields/#django.forms.ModelChoiceField 和*** 上的一些页面,但我仍然不明白。在我的模型中,我有一个县元组

county_choices = (('county1', _('county1')),('county2', _('county2')),('county3', _('county3')))
和模型
county = models.CharField(max_length=30, blank=True, default='n/a',choices=county_choices,verbose_name=_('county'), help_text=_(' County'))
我希望能够用我自己选择的字符串覆盖 9 '-' 空标签并能够翻译它。因此,我从模型中导入了所有内容并尝试了表单
county = forms.ModelChoiceField(queryset=Users.objects.all(),empty_label=_("my_own_choice"))
并且它不起作用。我在我的 html 中将 form.county 变量发送给它,但是在我自己的选择之后,我得到了一个奇怪的字符串 'sdadsada dsadadas' 而不是我的县列表。你能帮我解决这个问题吗?我是否需要将带有县的元组放在查询集中?如果我根本不想向它发送查询集怎么办?

【问题讨论】:

【参考方案1】:

为县和同步数据库创建一个模型。通过这种方式,您可以使用查询集来操作和访问它们,就像使用用户一样。即 queryset=Counties.objects.all()。

查看ModelChoiceField documentation 以获得更多帮助。

【讨论】:

是正确的,但是 id 并没有多大帮助。我想发送带有县的元组。以及如何从模型中提取该元组作为查询集???顺便说一句,爱马拉加:D 它不起作用,它说元组对象不可调用。如何将其转换为查询集? 更好:为县和同步数据库创建模型。通过这种方式,您可以使用查询集来操作和访问它们,就像使用用户一样。即 queryset=Counties.objects.all() 我已经做到了,我们取得了一些进展:它用空标签填充,但没有用选择填充元组:( 我已经改了答案,请再看一遍。您在为县创建的表中有值吗?

以上是关于更改 Django 表单的 empty_label的主要内容,如果未能解决你的问题,请参考以下文章

Django - 管理员 - 表单更改

Django:如何更改内联表单集中的字段小部件

django - 更改表单的结构,以便输入超出标签

django 忽略表单集中更改的字段

使用更改 django 模板中表单字段的名称属性

Django - 更改内联表单集 textInput 大小属性