Django Meta Class - 将排序应用于用户的模型字段
Posted
技术标签:
【中文标题】Django Meta Class - 将排序应用于用户的模型字段【英文标题】:Django Meta Class - Apply Ordering to user's model field 【发布时间】:2017-10-15 15:17:21 【问题描述】:我是 Django 1.9 的新手,我有一个 models.py :
class MyProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
Role = ArrayField(models.CharField(max_length=1000), blank=True,null=True)
ContactNumber = models.CharField(max_length=100)
class Meta:
ordering = ('date_joined',)
在这里,我想使用date_joined
订购表格,这是User model
的字段。
当我尝试运行 python manage.py makemigrations
时,它给了我如下错误:
SystemCheckError: System check identified some issues:
ERRORS:
projectmanagement.UniservedTeam: (models.E015) 'ordering' refers to the non-existent field 'date_joined'.
我如何做到这一点?
【问题讨论】:
【参考方案1】:在通用 api 视图上设置排序:
http://www.django-rest-framework.org/api-guide/filtering/#orderingfilter
使用:ordering = ('user__date_joined', )
编辑:
您可以像这样在元类上指定排序:
class Meta:
ordering = ('user__date_joined', )
【讨论】:
抱歉,我想在模型内订购。 AttributeError: type object 'user' has no attribute 'date_joined' 工作,谢谢!! 太棒了!很高兴能帮上忙:)以上是关于Django Meta Class - 将排序应用于用户的模型字段的主要内容,如果未能解决你的问题,请参考以下文章