mongoengine调用导致Django视图被称为twi

2024-04-27 13:32:01 发布

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

当我创建一个新对象时,它会被插入mongodb两次,
当我试图删除一个对象时,它会这样做,然后再试一次,只告诉我它找不到对象
它可能会在查询时做同样的事情-现在不是真正的问题

我将django1.4.1与mongoengine0.7.5一起使用

我的删除视图的代码是

def delbadge(request, oid):
    log.info('searching')
    try:
        badg = BgBadge.objects(id=oid)[0]
    except:
        log.error('not found')
        raise Http404
    badg.delete()
    log.info('deleted')
    return HttpResponseRedirect('/badge/')
    #raise Http404

它给我的是

^{pr2}$

如果我删除badg.delete(),我会得到

searching
deleted

当我将return HttpResponseRedirect('/badge/')替换为raise Http404

所以我测试了django中的mongoengine代码和没有mongoengine的django代码,它们都工作得很好

编辑:
/badge/的处理程序是url(r'^badge/$', AllBadges.as_view()),
我检查了http请求,但似乎不是原因

更新:
我在另一台电脑上做了同样的尝试


Tags: 对象django代码badgeinfologreturnsearching
1条回答
网友
1楼 · 发布于 2024-04-27 13:32:01

原来问题是由django debug toolbar引起的,更确切地说是剖析面板,它的钩子导致所有视图被调用两次。
移除debug_toolbar.panels.profiling.ProfilingDebugPanel面板可以解决问题。
https://github.com/django-debug-toolbar/django-debug-toolbar/issues/267
开发人员知道这个问题,应该在回购协议中解决。在

相关问题 更多 >