Python Django Admin中用户下拉列表(ForeignKey)的排序
我使用的是django管理员,希望对相关字段(ForeignKey)中的用户下拉列表进行排序(按姓氏) 我正在django中使用标准用户模型。我在model.py中尝试了以下不起作用的操作:Python Django Admin中用户下拉列表(ForeignKey)的排序,python,django,python-3.6,django-2.0,Python,Django,Python 3.6,Django 2.0,我使用的是django管理员,希望对相关字段(ForeignKey)中的用户下拉列表进行排序(按姓氏) 我正在django中使用标准用户模型。我在model.py中尝试了以下不起作用的操作: ... from django.contrib.auth.models import User class Meta: ordering = ['last_name'] User.add_to_class("Meta", Meta) ... class Application(models.Mo
...
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结合使用
感谢您的帮助。为什么不在模型课上做呢
class MyModel (models.Model):
user = models.ForeginKey(User)
...
class Meta:
ordering ['user__last_name']
用户模型中的排序被UserAdmin中指定的排序覆盖。指定我自己的UserAdmin解决了这个问题
class MyUserAdmin(UserAdmin):
...
ordering = ["last_name", "first_name"]
...
admin.site.register(User, MyUserAdmin)
好的,您可以在
user=…
行的末尾加一个逗号,而不是一个封闭的括号。该字段位于user=models.ForeignKey(user,verbose\u name=“xyz”,null=True,blank=True,limit\u choices\u to={'is\u active':True},on\u delete=models.PROTECT)
并以右括号结束。我想这将对MyModel中的对象进行排序,但我想排序的只是当我在MyModel的一个实例中编辑字段用户时在管理界面中显示的下拉列表。