2015-09-07 54 views
1

我想保存用戶在我的Django Socket.IO聊天應用程序發送的消息,並有以下型號:無法爲這個正確的對象實例分配給ForeignKey的領域

class Conversation(models.Model): 
    """ 
    Conversation with two or more participants. 
    """ 
    name = models.CharField(max_length=20) 
    ... 

class Message(models.Model): 
    """ 
    Single chat message. 
    """ 
    conversation = models.ForeignKey(Conversation,related_name='message_convo') 
    content = models.CharField(max_length=10000) 
    sender = models.ForeignKey(User,related_name='message_sender') 
    sent = models.DateTimeField(auto_now=True) 

我的事件處理程序代碼包括以下情況:

convo = get_object_or_404(Conversation, id=message["room"]) 
... 
m = Message() 
m.conversation = convo, 
m.content = message["message"] 
m.sender = user 
m.save() 

這失敗,完全無意義的信息: ValueError: Cannot assign "(<Conversation: ImmaMode, Century>,)": "Message.conversation" must be a "Conversation" instance.

由於convoget_object_or_404返回並且是明確 a Conversation實例,有什麼可能導致此??

回答

1
m.conversation = convo, 

逗號?

+0

是的,母親****逗號。不能相信我錯過了這一點。 – kontextify

+0

哈哈大聲笑:)你太接近這個問題 – Rel

+0

有趣的是,當你專注於某些事物時,你會完全錯過這樣的事情。謝謝。 :) – kontextify