gpt4 book ai didi

python - Django - 检查对象是否存在,如果存在则引发错误

转载 作者:行者123 更新时间:2023-12-01 03:18:44 25 4
gpt4 key购买 nike

我需要检查表中是否存在对象。如果该对象不存在,我想保存它,如果存在,我想刷新页面并告诉用户标识符(引用编号)已经存在。我有这个示例代码:

def some_method(request):
if request.method == 'POST':
form = SomeForm(request.POST)
if form.is_valid:
quote = request.POST.get('quote')
if SomeModel.objects.get(quote_number = quote).exists():
refresh with error #not sure how to do
else:
save object #I can do this part

我遇到的问题是,当我检查对象是否存在(确实存在)时,代码会引发错误,指出该对象在遇到 if 之前不存在。这意味着网页上充满了编码信息,而不是刷新后向用户发送消息。

我希望能够有一些弹出消息或其他内容供用户输入新的报价编号,而不是显示开发人员错误页面。

我的处理方式正确吗?

最佳答案

问题是get返回一个对象,但是 exists仅适用于查询集。当您使用 get 并且对象不存在时,将会引发 Model.DoesNotExist 错误。

您应该使用filter而不是get:

qs = SomeModel.objects.filter(quote_number = quote)
if qs.exists():
...
else:
...

关于python - Django - 检查对象是否存在,如果存在则引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42206351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com