【发布时间】:2015-08-04 13:27:15
【问题描述】:
我在 django 中有两个模型:
class Matching(models.Model):
representative_remote_id = models.CharField(max_length=200, null=True)
representative_name = models.CharField(max_length=200)
representative_group = models.CharField(max_length=200)
class Vote(models.Model):
representative_name = models.CharField(max_length=200, blank=True, null=True)
representative_remote_id = models.CharField(max_length=200, blank=True, null=True)
# ...
如您所见,这两个模型之间没有关系。 我想要的是选择所有投票:
vote.representative_name = CONCAT(matching.mep_name, ' (', matching.mep_group, ')')
AND matching.representative_remote_id IS NULL
AND vote.representative_remote_id IS NOT NULL
我找不到使用 django 执行此操作的方法(不使用“原始”sql 查询)
【问题讨论】:
-
让您加入 rep_name = concat(match.mep_name etc...) 并将您的 matching.rep_rem_id 为 null 并且 vote.rep_rem_id 在您的 where 子句中不为 null ------- -- 这并不是说你没有关系,而是你的关系在第二个表中的多个字段中被拆分,如果你在两个表之间的任何地方使用“=”并且有一个结果,那就是一个关系
-
谢谢 Jeremy C,但我不知道该怎么做,你能提供一个小代码示例吗?
-
你介意它是直接的 sql 吗?你能提供我表中的一些数据吗?我将创建一个 sqlfiddle 来解释我的意思,即如果我能在 45 分钟内完成这项工作,因为那是我需要离开的时候
-
嗯,我知道sql请求,但我想用django数据库函数来做。
-
那么我将不得不让你失望,因为即使是一般的 python,我也没有任何经验