如何通过父模型的属性来订购Django queryset?

sad*_*nsh 0 python django django-rest-framework

我有一个扩展Django用户模型的Profile模型,

class Profile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=False, blank=True)
    weight = models.DecimalField(max_digits=5, decimal_places=2, null=True, blank=True)
    height = models.DecimalField(max_digits=5, decimal_places=2, null=True, blank=True)
    activity_level = models.DecimalField(max_digits=2, decimal_places=1, null=True, blank=True)
    tdee = models.IntegerField(null=True, blank=True)

    def __str__(self):
        return self.get_username()
Run Code Online (Sandbox Code Playgroud)

当我尝试访问查询集时:

queryset = Profile.objects.all().order_by('-date_joined')
Run Code Online (Sandbox Code Playgroud)

它说

FieldError at /users/
Cannot resolve keyword 'date_joined' into field. Choices are: activity_level, height, id, set, sex, tdee, user, user_id, weight
Run Code Online (Sandbox Code Playgroud)

如何通过Profile类的父模型中的属性来命令我的查询集,在本例中是User模型?

提前致谢.

nim*_*ima 6

您没有继承django.contrib.auth用户模型,我们可以看到,您正在与django.contrib.auth用户模型建立OneToOne关系.因此,django.contrib.auth用户模型不会出现在您的Profile模型中.您可能会像这样解决这个问题:

queryset = Profile.objects.all().order_by('-user__date_joined')
Run Code Online (Sandbox Code Playgroud)