【发布时间】:2010-12-01 05:48:16
【问题描述】:
我有一个应用程序,它利用 Django 的 UserProfile 来扩展内置的 Django User 模型。有点像:
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)
并且它被注册到Admin中:
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: One or more models did not validate:
events.userprofile: "ordering" refers to "username", a field that doesn't exist.
user.username 也不起作用。如果我愿意,我可以指定,例如 image_url_s。 . .如何告诉管理员按username 对我的用户列表进行排序?谢谢!
【问题讨论】:
标签: python django sorting admin user-profile