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)
啊!原来是缺少 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 模板系统不同。)
感谢您的帮助和提示!
| 归档时间: |
|
| 查看次数: |
1637 次 |
| 最近记录: |