当前位置: 首页 > 知识库问答 >
问题:

匹配的查询不存在

弓华茂
2023-03-14

我正在尝试捕获异常,但无效。以下是我视图中的代码:

@login_required 
def activities_edit(request, edit):

    ActivityFormSet = modelformset_factory(Activity, can_delete=True)
    act_edit= Activity.objects.filter(campaing=1).get(pk=edit)
    try:
        if act_edit:
            if request.method == 'POST':
                formset = ActivityFormSet(request.POST, request.FILES, queryset=Activity.objects.filter(pk=edit))       
                if formset.is_valid():
                    formset.save()
                    return HttpResponseRedirect('/activities/')
            else:
                formset = ActivityFormSet(queryset=Activity.objects.filter(pk=edit))
    except act_edit.DoesNotExist:
        return HttpResponseRedirect('/activities/')

我还尝试了:“除了act_edit.DoesNotExist:”但错误仍然存在“活动匹配查询不存在”。你知道吗?

谢谢

共有2个答案

司允晨
2023-03-14

您有一点冗余捕获异常意味着您不必检查act_edit是否为空,因为如果为空,它将引发DoesNotExist。此外,模型具有DoesNotExist而不是实例。

@login_required 
def activities_edit(request, edit):

    ActivityFormSet = modelformset_factory(Activity, can_delete=True)       
    try:
        act_edit= Activity.objects.filter(campaing=1).get(pk=edit)

        if request.method == 'POST':
            formset = ActivityFormSet(request.POST, request.FILES, queryset=Activity.objects.filter(pk=edit))       
            if formset.is_valid():
                formset.save()
                return HttpResponseRedirect('/activities/')
        else:
            formset = ActivityFormSet(queryset=Activity.objects.filter(pk=edit))
            #HttpResponse not returned error here.
    except Activity.DoesNotExist:
        return HttpResponseRedirect('/activities/')
郗唯
2023-03-14

您需要移动可能导致try:子句主体中出现异常的语句。

语法是try:某物捕获某物:你的某物位于try:之上

act_edit= Activity.objects.filter(campaing=1).get(pk=edit)
try:

应该是

try:
   act_edit = Activity.objects.filter(campaing=1).get(pk=edit)
 类似资料:
  • 我使用的是django-allauth,我用以下细节配置了: 我设置了(因为我将默认站点更改为) 在settings.py中: 当我去: 我得到: 我做错了什么?

  • 问题内容: Python noob,因为这是我的第一个项目,所以请原谅我。 在我单击应用程序上的“注销”之前,该网站运行良好。在那之后,网站会给我这个错误:/ login /的SiteNotExist不存在网站匹配查询。 我到处搜索,获得的唯一解决方案与设置站点框架,SITE_ID等有关。我认为计算机上的这些项目都不错,但是找不到帮助你进行检查的演练/指南。 谁能告诉我问题出在哪里以及如何解决?在

  • Python新手,因为这是我的第一个项目,所以原谅我的不熟悉。 在我点击应用程序上的“注销”之前,该网站一直运行良好。之后,网站会给我这个错误:DoesNotExist at/login/Site匹配查询不存在。 我到处搜索,得到的唯一解决方案是建立站点框架、SITE_ID等。我认为我电脑上的这些项目都很好,但是我找不到一个演练/指南来帮助我检查它们。 有人能告诉我问题是什么以及如何解决它吗?提前

  • 我终于将我的项目发布到生产级别,突然间我遇到了一些在开发阶段从未处理过的问题。 当用户发布一些操作时,我有时会得到以下错误。 真正让我沮丧的是,该项目在本地环境中运行良好,而且数据库中确实存在匹配的查询对象。 现在我怀疑用户正在访问数据库,而数据库是保留给其他用户的,但是没有办法证明我的论点,也没有任何解决方案。 以前有人有过这样的问题吗?对如何解决这个问题有什么建议吗? 非常感谢你提前的帮助。

  • 问题内容: 我已经在Django中实现了密码恢复功能。用我的方法,新密码将发送到他输入的电子邮件ID。当我提供正确的电子邮件(数据库中存在的电子邮件ID)时,它的工作正常。但是,当我提供不在数据库中的电子邮件ID时,就会出现此错误“ DoesNotExist位于/​​ forgotPassword / UniversityDetails匹配查询不存在。”。有人可以解决这个问题吗?将在此处粘贴我的代

  • 在Access中,还有另一个非常有用的向导,那就是查找不匹配的查询向导。 “查找不匹配查询向导”将创建一个查询,查找一个表中的记录或行,这些记录或行在另一个表中没有相关记录。 正如前面已经讨论过数据如何在查询中连接,以及大多数查询如何查找两个或多个表之间的匹配。 这是Access中的默认连接,例如,如果使用两个表(和)设计查询,并通过连接这两个表,则此查询将只返回匹配的结果。换句话说,已下订单的客