我有自己的用户模型,并像这样覆盖了__str__
方法:
def get_django_user_full_name(self):
return self.get_full_name()
User.add_to_class("__str__", get_django_user_full_name)
现在的问题:我有一个特定的下拉菜单,我希望它以其他方式显示用户,即:
def get_user_name_last_first_email(self):
return self.last_name + ', ' + self.first_name + ', ' + self.email
User.add_to_class("last_first_email", get_user_name_last_first_email)
特定的下拉菜单表单字段为:
assignee = forms.ModelMultipleChoiceField(queryset=User.objects.filter(groups__name='actor').order_by('last_name'), required=False)
但是,此下拉菜单应该以默认的“ first_name last_name”方式显示。
我无法找到一种方法来强制它在下拉菜单中显示名称为“ last_name,first_name,email”(使用是否建立的自定义属性)。我发现覆盖它的唯一方法是使用values_list()
,但要么返回一个字段(如果flat = True),要么返回全部3个字段,但返回丑陋的元组。
tl; dr如何自定义表单中查询集的显示(即__str__
方法)?