【问题标题】:get_or_create not creating my object with attributes that I needget_or_create 没有使用我需要的属性创建我的对象
【发布时间】:2020-04-26 19:20:43
【问题描述】:

所以我试图 get_or_create 一个对话对象。现在,如果已经创建了对象,则代码可以正常工作。但是,如果它没有被创建,它将创建对话对象,但不会与我试图传递的成员一起创建。一个空的对话对象。 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)

【问题讨论】:

    标签: django


    【解决方案1】:

    所以,我想在创建对象后使用“add()”添加成员,因为它是多对多字段。

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

    【讨论】:

      猜你喜欢
      • 2012-06-08
      • 2018-02-19
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      相关资源
      最近更新 更多