У меня есть приложение, которое использует 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)
Увы, в интерфейсе admin, когда я иду, чтобы выбрать менеджера из раскрывающегося списка или установить членов команды через поле множественного выбора, они упорядочиваются с помощью числового идентификатора пользователя. Для жизни меня я не могу понять, как получить эти сортировки.
У меня есть аналогичный класс:
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
? Спасибо!