需要一些帮助发送python查询吗

2024-05-16 04:26:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图发送删除查询,但它不工作。这是视图.py零件:

def remove_sveti(request):
    if not request.is_ajax():
        raise Http404
    sveti = Sveti.objects.all()
    if sveti.pk == request.GET['pk']:
        sveti.remove()
        return HttpResponse('{"success":true}')

这是我的型号.py地址:

class Sveti(models.Model):
    name = models.CharField(max_length = 50, default = 'sveti')
    position = models.IntegerField()

在浏览器控制台中是500错误,在编辑器控制台中它写入:

File "D:\workspace\trello_env\lib\site-packages\django\core\handlers\base.py", line 132, in get_response
    raise ValueError("The view %s.%s didn't return an HttpResponse object." % (callback.__module__, view_name))
ValueError: The view trello.views.remove_sveti didn't return an HttpResponse object.
[05/Mar/2014 16:15:17] "GET /index/remove_sveti?pk=1 HTTP/1.1" 500 9676

我使用sqlite作为数据库。你知道吗


Tags: namepyviewgetreturnifmodelsrequest
1条回答
网友
1楼 · 发布于 2024-05-16 04:26:04

if sveti.pk == request.GET['pk']:为False时,不显式返回任何内容,视图返回None。你知道吗

要删除记录,需要使用^{} method

if sveti.pk == request.GET['pk']:
    sveti.delete()
    return HttpResponse('{"success":true}')
return HttpResponse('{"success":false}')

将修复这两个错误,或者返回404响应(未找到)。你知道吗

但是,我没有看到您实际在视图中查询正确的Sveti对象,也许您打算在这里使用^{} function

def remove_sveti(request):
    if not request.is_ajax():
        raise Http404
    sveti = get_object_or_404(Sveti, pk=request.GET['pk'])
    sveti.delete()
    return HttpResponse('{"success":true}')

如果主键的对象不存在,get_object_or_404()函数将引发Http404响应。你知道吗

相关问题 更多 >