をMultipleObjectsReturned:Djangoの会話 - get_or_createは私のモデル、私は簡単なチャットシステムを作成したい
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に制限できますか?
会話は既に存在し、会話のオブジェクトは2つあります...そのため、エラーが発生しました... – zaidfazil