嗨我有三个型号,
class Subscriber(models.Model):
subscriberId = models.SmallIntegerField(null= True,unique=True)
def __unicode__(self):
return str(self.subscriberId)
class Text(models.Model):
subscriberId = models.ForeignKey(Subscriber, null=False)
content = models.CharField(max_length=162 ,blank= True)
def __unicode__(self):
return str(self.subscriberId)
class Text2(models.Model):
subscriberId = models.ForeignKey(Subscriber, null=False)
Du = models.IntegerField()
def __unicode__(self):
return str(self.subscriberId))
我必须从特定订阅者的Text和Text2获取数据。 在mysql中我正在使用
select * from Server_Text JOIN (Server_Text2) ON (Server_Text.subscriberId_id = 11 and Server_Text2.subscriberId_id = 11) ;
其中Server是我的数据库名称,它工作正常。
我如何在Django中使用它。
答案 0 :(得分:0)
Django-ish这样做的方法是prefetch_related()
。但是,这不是一个SQL查询:
subscriber = Subscriber.objects.prefetch_related('text_set', 'text2_set').get(pk=1)
print subscriver.text_set # list of Text models
print subscriver.text2_set # list of Text2 models