2

新しいオブジェクトを作成すると、mongodb に 2 回挿入されます。1
つを削除しようとすると、オブジェクトが見つからなかったことを示すためだけに再試行されます。
おそらく、クエリで同じことを行うのはあまりにもタフで、そうではありません。本当に今問題です

私はmongoengine 0.7.5でdjango 1.4.1を使用しています

私の削除ビューのコードは

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

それが私に与えるものは

searching
deleted
searching
not found

を削除するbadg.delete()と、

searching
deleted

return HttpResponseRedirect('/badge/')byを置き換えても同じことraise Http404

だから私はdjangoからmongoengineコードをテストし、mongoengineなしでdjangoコードをテストしましたが、どちらも問題なく動作します

編集:
のハンドラー/badge/url(r'^badge/$', AllBadges.as_view()),
、http 要求を確認しましたが、原因ではないようです

更新:
別のコンピューターで試してみましたが、同じ動作が得られました

4

1 に答える 1

1

問題の原因はdjango-debug-toolbarであることがわかりました。具体的には、フックによってすべてのビューが2回呼び出されるプロファイリングパネルです。パネルを
取り外すと問題が解決します。https://github.com/django-debug-toolbar/django-debug-toolbar/issues/267 この問題は開発者に知られており、リポジトリで修正されるはずです。debug_toolbar.panels.profiling.ProfilingDebugPanel

于 2012-10-02T12:48:29.230 に答える