我正在使用以下表单:
class InvoiceModelForm ( forms.ModelForm ):
u = forms.ModelChoiceField ( queryset = User.objects.all () )
但是在表单字段中却显示了用户名。我想更改它以使用名字和姓氏。
我不想改变
def __str__(self):
return self.username
如何更改表单字段中显示的值?
最佳答案
参见https://docs.djangoproject.com/en/2.0/ref/forms/fields/#modelchoicefield的最后一部分
因此,在您的情况下,您可以执行以下操作:
from django.forms import ModelChoiceField
class NameChoiceField(ModelChoiceField):
def label_from_instance(self, obj):
return f'{obj.first_name} {obj.last_name}'
进而,class InvoiceModelForm(forms.ModelForm):
u = NameChoiceField(queryset=User.objects.all())
关于django - ModelChoiceField表单字段上的自定义标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48409264/