get_or_create не создает мой объект с атрибутами, которые мне нужны - PullRequest
0 голосов
/ 26 апреля 2020

Итак, я пытаюсь получить или создать объект беседы. Теперь, если объект уже создан, код работает нормально. Но если он не создан, он создаст объект беседы, НО с теми участниками, которых я пытаюсь передать. Пустой объект разговора. members - это множество полей для пользователя. Что я тут не так делаю?

просмотров / сообщений

def message (request, profile_id):

    if request.method == 'POST':

        form = MessageForm(request.POST)
        if form.is_valid():
            form.save()


            return redirect('dating_app:messages', profile_id)
    else:
        conversation, created = Conversation.objects.filter(members = request.user).filter(members= profile_id).get_or_create()


        other_user = conversation.members.filter(id=profile_id).get()

        form = MessageForm({'sender': request.user, 'conversation': conversation})

        context = {'form' : form, 'other_user': other_user }

        return render(request, 'dating_app/message.html', context)

models.py / Conversation

class Conversation(models.Model):
    members = models.ManyToManyField(settings.AUTH_USER_MODEL)

1 Ответ

0 голосов
/ 26 апреля 2020

Итак, я понял, используя add (), чтобы добавить своих членов после того, как создал свой объект, так как это поле многие ко многим.

            conversation, created = Conversation.objects.filter(members = request.user).filter(members= profile_id).get_or_create()

            conversation.members.add(request.user, profile_id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...