我有自定义的用户模型和两种型号,都与ForeinKey两个用户同时:如何做复杂的加入在Django
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')
,但我需要的,有从特点2模型这个查询集数据量太大(对于每一个特定的对用户,如果存在的话) 并从特征2
是由“财产”能够为了查询集如何做到这一点?我研究过django文档,但没有结果。
你看着使用'select_related()'? –
可能就是这样,但我不知道如何正确使用它。我的情况并不像django例子那么简单。 –
您是否渴望'Feature2'中的所有字段,其中'Feature2'中的user1'等于'Feature1'中的'user1','Feature2'中的user2'等于'Feature1'中的'user2'? –