所以我试图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/对话
class Conversation(models.Model):
members = models.ManyToManyField(settings.AUTH_USER_MODEL)
所以,我创建对象后使用'add()'来添加成员,因为它是多对多字段。
conversation, created = Conversation.objects.filter(members = request.user).filter(members= profile_id).get_or_create()
conversation.members.add(request.user, profile_id)