Сортировка выпадающего списка пользователей (ForeignKey) в Django Admin - PullRequest
0 голосов
/ 17 мая 2018

Я использую администратора django и хочу отсортировать (по фамилии) раскрывающийся список пользователей в соответствующем поле (ForeignKey).

Я использую стандартную модель User в Django.Я попробовал следующее в model.py, который не работает:

...
from django.contrib.auth.models import User

class Meta:
    ordering = ['last_name']

User.add_to_class("Meta", Meta)
...
class Application(models.Model):

    ...
    user = models.ForeignKey(User,
        verbose_name="xyz", 
        null=True, blank=True, 
        limit_choices_to={'is_active': True}, 
        on_delete=models.PROTECT) 
    ...

Почему это не работает?Есть ли другой (простой) способ сделать это?Я, вероятно, должен был пойти на пользовательскую модель.Но я этого не делал, и изменение его сейчас - большая работа.

Я использую django 2.0.5 с python 3.6.5

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Это показывает, что порядок в модели пользователя перезаписан порядком, указанным в UserAdmin. Указание моего собственного UserAdmin решило проблему.

class MyUserAdmin(UserAdmin):
    ...
    ordering = ["last_name", "first_name"]
    ...
admin.site.register(User, MyUserAdmin)
0 голосов
/ 17 мая 2018

Почему бы не сделать это в классе вашей модели

class MyModel (models.Model):
    user = models.ForeginKey(User)
    ...

    class Meta:
        ordering ['user__last_name']
...