如何在概要文件模型(1:1)中按字段对用户模型进行排序?

2024-03-29 10:20:43 发布

您现在位置:Python中文网/ 问答频道 /正文

技能\注意\声誉是配置文件模型中与Profileuser具有1:1关系的字段

如何根据技能\注意\声誉值对用户模型进行排序

    user_list = User.objects.all ()

谢谢你让我知道如何修理它


Tags: 用户模型objects排序关系技能配置文件all
1条回答
网友
1楼 · 发布于 2024-03-29 10:20:43

如果将parent_link=True键添加到OneToOneField,则可以引用Profileuser中的字段,就像它们属于User模型一样

例如:

class Profileuser(models.Model):
    user = models.OneToOneField(
          User, on_delete=models.CASCADE,
          related_name='profileuser', parent_link=True)
    skill_note_reputation = models.IntegerField()

现在,您可以像这样过滤User模型:

User.objects.filter(skill_note_reputation=1)

对于一种更具pythonic的方法,您可以利用Django的model inheritance,并将您的Profileuser模型转换为:

class Profileuser(User):
    skill_note_reputation = models.IntegerField()

请注意,此模型与上述模型相同

如果出于某种原因不想使用parent_link=True,可以使用Django的LOOKUP_SEP引用任何ForeignKey列,如下所示:

User.objects.filter(profileuser__skill_note_reputation=1)

相关问题 更多 >