如何按配置文件模型中的字段对用户模型进行排序 (1:1)?



skill_note_reputation 是配置文件模型中的一个字段,与 Profileuser 具有 1:1 的关系。

如何按skill_note_reputation值对用户模型进行排序?

user_list = User.objects.all ()

感谢您让我知道如何解决它

如果将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的模型继承,并将你的Profileuser模型变成这样:

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

请注意,此模型和上述模型是相同的。

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

User.objects.filter(profileuser__skill_note_reputation=1)

最新更新