Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Admin中用户下拉列表(ForeignKey)的排序_Python_Django_Python 3.6_Django 2.0 - Fatal编程技术网

Python Django Admin中用户下拉列表(ForeignKey)的排序

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

我使用的是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.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的一个实例中编辑字段用户时在管理界面中显示的下拉列表。