在Django Admin中排序多对多字段

Mic*_*elC 8 python django-admin

这是我的设置:

from django.contrib.auth.models import User

class Product(models.Model):
   ...
   email_users = models.ManyToManyField(User, null=True, blank=True)
   ...
Run Code Online (Sandbox Code Playgroud)

[别处]

class ProductAdmin(admin.ModelAdmin):
   list_display = ('name','platform')

admin.site.register(Product, ProductAdmin)
Run Code Online (Sandbox Code Playgroud)

我的主要问题是,当我在管理部分查看"产品"页面时,默认情况下,电子邮件用户没有按其ID排序,我希望按用户名订购.

从我到目前为止所读到的,似乎我需要添加:

   email_users.admin_order_field = 'xxxx'
Run Code Online (Sandbox Code Playgroud)

但我不太确定访问用户名的语法是什么.

Mic*_*elC 7

上面郝莲的评论中提到了答案,本质上,这是需要做的:

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)
Run Code Online (Sandbox Code Playgroud)

在我需要 forms.ModelMultipleChoiceField 的意义上,我的略有不同,而提供的答案使用了 forms.ModelChoiceField()