2013-07-30 30 views
0

我試圖在Django中創建一個查詢集,但沒有運氣。 由於某種原因我的模型似乎是錯誤的。 我會簡化。失蹤?類模型django queryset

我有這個類在models.py:

class RcAnalysis(models.Model): 
    id = models.AutoField(db_column='Id', primary_key = True) # Field name made lowercase. 
    /* 
    some other 10 columns (srry can't post here) 
    */ 
    class Meta: 
     db_table = 'rc_Analysis' 

class RcAnalysistag(models.Model): 
    analysisid = models.ForeignKey(RcAnalysis, db_column='AnalysisId') # Field name made lowercase. 
    tagid = models.ForeignKey(LabTags, db_column='TagId') # Field name made lowercase. 
    class Meta: 
     db_table = 'rc_AnalysisTag' 

我需要加入與analysistag模型RcAnalysis。 但我沒有一個領域,我可以調用RcAnalysisTag本身。

它這樣的SQL查詢:

... 
from rc_Analysis A 
... 
inner join rc_AnalysisTag At on (A.Id = At.AnalysisId) 
inner join lab_Tags T on (T.Id = At.TagId) 

人嗎?

+0

爲什麼你需要在同一個查詢集?難道你不能只使用RcAnalystag模型的查詢集並通過外鍵關係訪問RcAnalysistag?什麼是特定用例?在大多數情況下這應該是不必要的。你想達到什麼目的?你想用查詢集做什麼? – 2013-07-30 12:55:25

+0

我只需要加入RcAnalysis與RcAnalysistag。 其中RcAnalysis ID等於RcAnalysisTag analysisid。 Django不允許我使用id字段,嘗試與兩者進行連接。 你是怎麼加入這個模型的?我curr使用RcAnalysis.objects ... – Storm

+0

想通了... 我可以使用rcanalysistag作爲django tiped我。 沒有看到這個2天-.- 謝謝。 – Storm

回答

0

將外鍵定義添加related_name =「tags」。那麼你可以這樣做:

analysis_object = RCAnalysis.object.get(id=1) 
related_tags = analysis_object.tags.all()