我有一个应用程序,利用Django的UserProfile
来扩展内置的DjangoUser
模型。看起来有点像:
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
# Local Stuff
image_url_s = models.CharField(max_length=128, blank=True)
image_url_m = models.CharField(max_length=128, blank=True)
# Admin
class Admin: pass
我已经向我的模型中添加了一个新类:
class Team(models.Model):
name = models.CharField(max_length=128)
manager = models.ForeignKey(User, related_name='manager')
members = models.ManyToManyField(User, blank=True)
并且它已经在管理页面中注册:
class TeamAdmin(admin.ModelAdmin):
list_display = ('name', 'manager')
admin.site.register(Team, TeamAdmin)
哎呀,在管理界面中,当我从下拉框中选择经理或通过多选字段设置团队成员时,它们是按用户数字ID排序的。我无论如何也无法弄清楚如何对它们进行排序。
我有一个类似的类:
class Meta:
ordering = ['name']
这个方法很好用!但是我并不“拥有”User
类,当我在UserAdmin
中尝试使用时:
那就很困难了!
class Meta:
ordering = ['username']
我得到了以下错误:
django.core.management.base.CommandError: 一个或多个模型未经验证:
events.userprofile:“ordering”引用了一个不存在的字段“username”。
user.username
也不起作用。如果我想要指定像 image_url_s
一样的排序方式……那我该怎么告诉管理员按 username
对用户列表进行排序呢?谢谢!
Class Meta
中也需要添加fields = '__all__'
。 - Flash