在Django管理订购一多到许多领域
问题描述:
这里是我的设置:在Django管理订购一多到许多领域
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意义略有不同,而答案提供使用的形式.ModelChoiceField()
您是否尝试过使用ModelForm和ModelChoiceField这个技巧? http://*.com/questions/1474135/ – hao 2010-09-02 19:56:26
谢谢!显然我的搜索功能还没有达到标准。 :) – MichaelC 2010-09-03 13:08:52