我正在开发一个简单的聊天应用程序,它可以创建聊天室供用户加入。你输入你的聊天室名称,它会检查这个聊天室是否已经存在。如果已经存在,你会被重定向到这个聊天室。如果不存在,它会创建一个新的聊天室,保存这个聊天室,然后重定向到那里。我遇到的问题是如何保存创建的新聊天室。
我一直收到一个“DoesNotExist”错误。“房间匹配查询不存在。”下面是代码:
def check_view(request):
room_entity = request.POST['room_name']
username = request.POST['username']
if Room.objects.filter(name=room_entity).exists():
return redirect('/' + str(room_entity) + '/?username=' + str(username))
else:
new_room = Room.objects.create(name=room_entity)
new_room.save()
Room.save(new_room)
return redirect('/' + str(room_entity) + '/?username=' + str(username))
def room(request, room_info):
username = request.GET.get('username')
room_details = Room.objects.get(name=room_info)
return render(request, 'room.html', {
'username': username,
'room': room_info,
'room_details': room_details
})
2条答案
按热度按时间qgelzfjb1#
这将获取房间(如果存在)或创建它(如果找不到)。返回元组中的第一个变量是实际的房间对象。第二个变量是一个bool,用于了解它是已创建的(true)还是已存在的(false)。然后您可以创建如下逻辑:
kuuvgm7e2#
如果数据库中不存在名为room_info的房间对象,则会出现此错误。
相反,您可以做的是: