2015-11-24 18 views
1

您好我有三個型號,如何使用加入在Django ORM

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)) 

我得從文本和文本2數據對一個特定的用戶。 MySQL中我使用

select * from Server_Text JOIN (Server_Text2) ON (Server_Text.subscriberId_id = 11 and Server_Text2.subscriberId_id = 11) ; 

其中,服務器是我的數據庫的名字,這是工作的罰款。

我該如何在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 
+0

通過執行subscriber = Subscriber.objects.prefetch_related('text_set','text2_set')。get(subscriberId = 1)試圖做到這一點。面對錯誤 –

+0

其實我想獲取一切可用的特定用戶,它存在於數據庫中併發送它到html頁面。 –

+0

上面的代碼已經在檢索訂閱者及其所有的Text和Text2模型。 –