为什么我的Django视图在每个页面视图中被击中两次?

Man*_*tic 5 django django-views

我似乎无法为我的生活找到问题.很简单,我有一个数据库对象,我从数据库中提取,将它的"视图"递增一个,然后保存.我的视图显示增量值,但随后我的日志显示该值增加了AGAIN.

g=Game.objects.filter(slug=slug).distinct()[0]
g.views += 1
g.save()
Run Code Online (Sandbox Code Playgroud)

这是我的日志:

[Fri Oct 29 15:15:49 2010] [error] DEBUG:root:Updating plays
[Fri Oct 29 15:15:49 2010] [error] DEBUG:root:plays: 40
[Fri Oct 29 15:15:50 2010] [error] DEBUG:root:Updating plays
[Fri Oct 29 15:15:50 2010] [error] DEBUG:root:plays: 41
Run Code Online (Sandbox Code Playgroud)

我的观点显示它有40次点击.这导致每次刷新时我的视图增加2:

[Fri Oct 29 15:20:19 2010] [error] DEBUG:root:Updating plays 
[Fri Oct 29 15:20:19 2010] [error] DEBUG:root:plays: 42
[Fri Oct 29 15:20:19 2010] [error] DEBUG:root:Updating plays
[Fri Oct 29 15:20:19 2010] [error] DEBUG:root:plays: 43
Run Code Online (Sandbox Code Playgroud)

关于这可能是什么的任何暗示?

编辑:

这是我的看法.我把它简化为核心元素(它仍然表现得很奇怪).

def game(request, slug=None):

    g=Game.objects.filter(slug=slug)[0]

    if g:
        comments=GameComment.objects.filter(item=g, parent__isnull=True)
        g.plays+=1
        g.save()
    else:
        comments=None

    return render_to_response('goto/goto_game.html', {'g': g, 'comments':comments, 'cCount':len(comments) if comments else 0, 'newCCount':0}, request=request)
Run Code Online (Sandbox Code Playgroud)

Man*_*tic 4

啊!原来是缺少 url 和 ajax 问题。这不是图标,因为它只触及根,而不是我的具体视图。

当我有这样的 AJAX 命令时,问题就出现了:

$.post('{{url("_submitcomment")}}', data, function(data) { ...
Run Code Online (Sandbox Code Playgroud)

并且“url”无法反转“_submitcomment”,因此返回一个空字符串。呼唤

$.post(''); 
Run Code Online (Sandbox Code Playgroud)

将点击您当前的 URL 并尝试获取所有内容!

(顺便说一句,我使用的是 Jinja2,所以 url 命令可能看起来与传统的 Django 模板系统不同。)

感谢您的帮助和提示!