奇怪的错误,异常值:类型对象没有属性‘DoesNoExist’

0 投票
2 回答
972 浏览
提问于 2025-04-17 21:01

我有一段代码,但我不明白为什么会出现错误,提示我似乎没有放置“DoesNotExist”处理器,而实际上它已经在那儿了……错误信息是:

在 /hotel/edit/hotel-riodssdfsdf-google-facebook-351/ 发生了 AttributeError 错误

类型对象 'hotel' 没有属性 'DoesNoExist'

请求方法:GET 请求网址: http::9000/hotel/edit/hotel-riodssdfsdf-google-facebook-351/ Django 版本:1.6.2 异常类型:AttributeError 异常值:

类型对象 'hotel' 没有属性 'DoesNoExist'

异常位置:views.py 文件的 update 函数,第 171 行

第 171 行是正确的……:except hotel.DoesNoExist:

if 'member_id' not in request.session:

    return HttpResponseRedirect('/login/')

else:

    if request.POST:

        try:

            hotelObject = hotel.objects.get(slug=slug)

            form = UpdateHotelForm(request.POST, instance=hotelObject)

            if form.is_valid():

                now = datetime.datetime.now()
                name = form.cleaned_data['name']
                slug_name = slugify(name + ' ' + str(now.microsecond))

                hotels = hotel.objects.get(
                    id=hotelObject.id,
                    publisher=request.session['member_id'])

                hotels.name = name

                hotels.slug = slug_name

                hotels.save()

                args = {}

                args.update(csrf(request))

                args['form'] = form
                args['message'] = False
                args['name'] = hotelObject.name

                return HttpResponseRedirect('/hotel/edit/' + slug_name)

            else:

                args = {}

                args.update(csrf(request))

                args['form'] = form
                args['message'] = True
                args['name'] = hotelObject.name

                return render_to_response('hotel/edit_hotel.html', args)

        except hotel.DoesNoExist:

            return HttpResponseRedirect('/hotel/')
    else:

        try:

            hotelObject = hotel.objects.get(slug=slug)

            form = UpdateHotelForm(request.POST, instance=hotelObject)

            form = UpdateHotelForm(instance=hotelObject)

            args = {}

            args.update(csrf(request))

            args['form'] = form
            args['name'] = hotelObject.name

            return render_to_response('hotel/edit_hotel.html', args)

        except hotel.DoesNoExist:

           return HttpResponseRedirect('/hotel/')

2 个回答

1

你把 DoesNotExist 拼错成了 DoesNoExist。把它改成:

except hotel.DoesNotExist:
1

正确的写法是 hotel.DoesNotExist,而不是 hotel.DoesNoExiste。

撰写回答