【发布时间】:2013-07-30 15:11:06
【问题描述】:
我正在尝试在 django 中创建一个查询集,但我没有运气。 出于某种原因,我的模型似乎是错误的。 我会简化的。
我在 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 )
有人吗?
【问题讨论】:
-
为什么你需要在同一个查询集中两者?你不能只使用 RcAnalystag 模型的查询集并通过外键关系访问 RcAnalysistag 吗?具体用例是什么?在大多数情况下,这应该是不必要的。你想达到什么目的?你想用查询集做什么?
-
我只需要使用 RcAnalysistag 加入 RcAnalysis。其中 RcAnalysis ID 等于 RcAnalysisTag analysisid。 Django 不允许我使用 id 字段来尝试加入两者。你是如何加入这个模型的?我正在使用 RcAnalysis.objects ...
-
想通了...我可以像 django 提示的那样使用 rcanalysistag。 2天没看到这个-.-谢谢。