我想創建簡單的聊天系統,我的模型:Django的對話 - get_or_create MultipleObjectsReturned
class Conversation(models.Model):
users = models.ManyToManyField(User, related_name='users')
date = models.DateTimeField(auto_now_add=True)
class Message(models.Model):
user = models.ForeignKey(User)
conversation = models.ForeignKey(Conversation, related_name='conversation')
content = models.TextField()
date = models.DateTimeField(auto_now_add=True)
和我的觀點:
def conversation(request, username):
recipient = User.objects.get(username=username)
conversation, created = Conversation.objects.get_or_create(
users__in=[recipient, request.user]
)
if created:
conversation.users.add([recipient, request.user])
我想通過創建創建多對多場會話的用戶連接。 當我去/ conversations/user_name get_or_create檢查對話是否存在,如果沒有,然後創建與當前登錄的用戶和用戶從url的新對話。
我的問題是:
MultipleObjectsReturned at /conversations/user_name
get() returned more than one Conversation -- it returned 2!
我該怎麼解決呢?可能它的問題與這manytomany領域..我怎麼能限制users__id查找1?
對話已經存在,並有對話的兩個對象...這就是爲什麼發生錯誤... – zaidfazil