【发布时间】:2017-09-13 08:07:34
【问题描述】:
我有自定义用户模型和两个模型,都使用 ForeinKey 来同时访问两个用户:
class Feature1(models.Model):
user1 = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='u1')
user2 = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='u2')
some field....
percentage = models.FloatField()
class Feature2(models.Model):
user1 = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='us1')
user2 = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='us2')
some fields...
property = models.PositiveIntegerField()
然后我使用查询集检索特定用户的所有对
queryset = Feature1.objects.filter(u1=self.request.user).all().order_by('-percentage')
但是我需要的是,在这个查询集中也有来自 Feature2 模型的数据(对于每对特定的用户,如果存在) 并能够通过 Feature2 中的“属性”订购查询集
怎么做?我研究了 django 文档,但没有结果。
【问题讨论】:
-
您是否考虑过使用
select_related()? -
大概就是这样,但我不知道如何正确使用它。我的情况不像 django 例子那么简单。
-
您是否想要
Feature2中的所有字段,其中Feature2中的user1等于Feature1中的user1和Feature2中的user2等于@987654331 @在Feature1? -
@MattCremeens 是的,完全正确
标签: python django python-3.x django-models django-queryset