我正在使用django管理员,并希望对相关字段(ForeignKey)中的用户下拉列表进行排序(通过last_name)。
我正在使用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
感谢任何帮助。
答案 0 :(得分:0)
为什么不在模型类中进行
class MyModel (models.Model):
user = models.ForeginKey(User)
...
class Meta:
ordering ['user__last_name']
答案 1 :(得分:0)
它表示用户模型中的排序被UserAdmin中指定的排序覆盖。指定我自己的UserAdmin解决了这个问题。
class MyUserAdmin(UserAdmin):
...
ordering = ["last_name", "first_name"]
...
admin.site.register(User, MyUserAdmin)