我想用两个条件连接模型B和C,model_B中的data_a和human,model_C中的data_a和autor,但是我怎么用Django ORM来做呢
class user(models.Model):
data_1 = models.CharField(max_length=60)
data_2 = models.SmallIntegerField()
data_3 = models.IntegerField(blank=True, null=True)
class model_A(models.Model):
data_1 = models.CharField(max_length=60)
data_2 = models.SmallIntegerField()
data_3 = models.IntegerField(blank=True, null=True)
class model_B(models.Model):
data_a = models.ForeignKey(model_A)
human = models.ForeignKey(user)
data_2 = models.IntegerField()
class model_C(models.Model):
data_a = models.ForeignKey(model_A)
author = models.ForeignKey(user)
data_1 = models.CharField(max_length=5)
data_2 = models.IntegerField()
字符串
additional conditions on join in django
我看过这个地方,但我不知道它是否适合我的情况
1条答案
按热度按时间5vf7fwbs1#
你可以试试这个
字符串
在此代码中,我们使用双下划线表示法来遍历模型之间的关系并执行连接。human__model_c__author和data_a__model_c__data_a表示您在SQL查询中提到的条件,其中我们检查human_id和author_id之间以及data_a_id和data_a_id之间的相等性。最后,我们使用values方法从model_B中选择'data_a'字段。
这段代码将生成一个与SQL查询等价的查询。