[英]How to set text in Django drop down menu?
是否可以為下拉菜單的每個項目設置標簽? 它顯示了模塊實例的__str__
輸出-表中的項目。
class LanguageDropDownForm(forms.Form):
languages = forms.ModelChoiceField(queryset=Languages.objects.all().order_by('language_shortcut'))
Models.py:
class Languages(models.Model):
language = models.CharField(max_length=100)
language_shortcut = models.CharField(max_length=3)
price_per_word = models.FloatField()
def __str__(self):
return 'SC: {} Lang: {} PPW: {}'.format(self.language_shortcut,self.language,self.price_per_word)
你能給我個建議嗎?
我只想使用model.language
或model.name
而不是__str__
方法,例如admin
。
是啊。 只需使用unicode而不是您所到之處。
def __unicode__(self):
如文檔所述 ,您應該繼承默認的語言字段的ModelChoiceField
並覆蓋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)
然后以您的形式執行:
class LanguageDropDownForm(forms.Form):
languages = LanguageModelChoiceField(queryset=Languages.objects.all().order_by('language_shortcut'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.