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)