如何在Django下拉菜单中设置文本?

2024-09-30 16:33:07 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以为下拉菜单的每一项设置一个标签?它显示来自模块实例的__str__输出-表中的项。在

class LanguageDropDownForm(forms.Form):
    languages = forms.ModelChoiceField(queryset=Languages.objects.all().order_by('language_shortcut'))

模型.py:

^{pr2}$

你能给我个建议吗?在

例如,我只想要model.languagemodel.name,而不是{}方法,这在{}中很有用。在


Tags: 模块实例formmodelforms标签languageclass
2条回答

是的。只需使用unicode,而不是使用现有的unicode。在

def __unicode__(self):

正如doc所说,您应该继承默认的ModelChoiceFieldfor languages字段并重写label_from_instance方法:

class LanguageModelChoiceField(forms.ModelChoiceField):
    def label_from_instance(self, obj):
        return 'SC: {} Lang: {} PPW: {}'.format(obj.language_shortcut,
                                                obj.language,
                                                obj.price_per_word)

然后以你的形式:

^{pr2}$

相关问题 更多 >