【发布时间】:2010-09-27 21:32:41
【问题描述】:
我有两个这样的模型:
class ObjectLock(models.Model):
partner = models.ForeignKey(Partner)
object_id = models.CharField(max_length=100)
class Meta:
unique_together = (('partner', 'object_id'),)
class ObjectImportQueue(models.Model):
partner = models.ForeignKey(Partner)
object_id = models.CharField(max_length=100)
... # other fields
created = models.DateTimeField(auto_now_add = True)
modified = models.DateTimeField(auto_now = True, db_index=True)
class Meta:
ordering = ('modified', 'created')
上面提到的第三个模型(合作伙伴)没有什么值得注意的。
我想得到类似的东西:
SELECT * FROM ObjectImportQueue q LEFT OUTER JOIN ObjectLock l ON
q.partner_id=l.partner_id AND q.object_id=l.object_id WHERE l.object_id
IS NULL and l.partner_id IS NULL;
我遇到了this page,它告诉我如何进行自定义连接,我尝试传入一个列名的元组来代替要连接的列名,但这没有用。 Partner 表不需要包含在生成的 sql 查询中,但我会接受包含它的答案,只要它有效地执行我尝试对一个查询执行的操作。
【问题讨论】:
-
也许我这里出了点问题,但是为什么不寻找 object_id = NULL 和 partner_id = NULL 而不加入呢?应该给你同样的结果吗?
-
我正在尝试在队列表中查找没有在锁定表中有相应行的行。