这是我的设置:
from django.contrib.auth.models import User
class Product(models.Model):
...
email_users = models.ManyToManyField(User, null=True, blank=True)
...
[别处]
class ProductAdmin(admin.ModelAdmin):
list_display = ('name','platform')
admin.site.register(Product, ProductAdmin)
我的主要问题是,当我在管理部分查看“产品”页面时,默认情况下电子邮件用户不会按其 ID 排序,而我希望按用户名排序。
从我到目前为止所读到的内容来看,我似乎需要添加:
email_users.admin_order_field = 'xxxx'
但我不太确定访问用户名的语法是什么。
上面郝炼的评论中提到了答案,本质上,这就是需要做的:
class ProductAdminForm(ModelForm):
email_users = forms.ModelMultipleChoiceField(queryset=User.objects.order_by('username'))
class Meta:
model = Product
class ProductAdmin(admin.ModelAdmin):
list_display = ('name','platform')
form = ProductAdminForm
admin.site.register(Product, ProductAdmin)
我的略有不同,因为我需要 forms.ModelMultipleChoiceField,而提供的答案使用 forms.ModelChoiceField()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)