【问题标题】:How do I ensure any object I create is saved in my django project?如何确保我创建的任何对象都保存在我的 Django 项目中?
【发布时间】:2023-02-04 03:31:02
【问题描述】:

我正在开发一个简单的聊天应用程序,可以为用户创建聊天室。您输入您的房间名称,它会检查该房间是否已经存在。如果是这样,您将被重定向到房间。如果没有,它会创建一个新房间,保存房间并将您重定向到那里。我遇到的问题是保存创建的新房间。

我不断收到“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
    })

【问题讨论】:

  • 你能分享你的Room模型吗?还共享完整的错误回溯。

标签: python django sqlite django-models django-views


【解决方案1】:
room_details = Room.objects.get(name=room_info)

如果数据库中不存在名为 room_info 的 Room 对象,您将收到此错误。

相反,您可以做的是:

try:
    room = Room.objects.get(name=room_info)
except Room.DoesNotExist:
    raise Http404("Given query not found....")

【讨论】:

    猜你喜欢
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 2012-08-09
    • 2011-10-30
    • 1970-01-01
    • 2013-03-20
    相关资源
    最近更新 更多