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)
但我不太确定访问用户名的语法是什么.
上面郝莲的评论中提到了答案,本质上,这是需要做的:
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()