3
我有模型,如那些在Django:django一對一的左連接爲空?
class User(models.Model):
name = models.CharField(max_length = 128)
class Message(models.Model):
sender = models.ForeignKey(User, related_name = 'messages_sent')
recipient = models.ForeignKey(User, related_name = 'messages_recieved')
subject = models.CharField(max_length = 128)
body = models.CharField(max_length = 3500)
class Response(models.Model):
message = models.OneToOneField(Message, primary_key = True)
reply = models.TextField()
,我試圖讓一切針對無反應,這是我會在SQL編寫的用戶消息:
select * from user u
join message m on (u.id = m.recipient_id)
left join response r on (m.id = r.message_id)
where r.message_id = null
我倒是覺得自然的方式來做到這一點是:
u.messages_recieved.filter(response = None)
或
u.messages_recieved.filter(response__message_id__isnull = True)
但始終生成的SQL結束是:
WHERE ("project_message"."recipient_id" = 1 AND "project_message"."id" IS NULL)
我做一些愚蠢的事,或者這是在Django的錯誤嗎?
哈!所以它可能被固定在1.1RC中,因爲在1.0.2中以上都不適合我。讓我檢查一下。 – tpk 2009-07-27 18:49:22