0

我想做的很简单,我想在每次调用视图函数时更新对象的计数变量。

我的模型是这样的:

class Url(models.Model):
      #some vars here
      count=0

      def __unicode__(self):
            return self.urlx
      def incr(self):
            self.count+=1

我的视图代码是这样的

@transaction.autocommit
def redirect(request,key):
    if(key):
        key='/'+key
        try:
            ob=Url.objects.get(urlx=key)
            ob.incr()  #not working
            ob.save()  #not working
            return HttpResponseRedirect(ob.url)
            val=ob.count
        except Url.DoesNotExist:
            key="Sorry! couldn't find that url"         

    return render_to_response('redir.html',{},context_instance=RequestContext(request))

我确定我在这里忽略了一些东西,或者这不是正确的方法吗?

4

1 回答 1

3

由于您错过了“此处的其他变量”,因此尚不清楚您是否意识到 Django 模型字段需要是字段 - 即models.CharField,models.IntegerField等。放置count=0只会生成一个不会被持久化的类变量在数据库中。你可能只是想要count = models.IntegerField(default=0).

于 2012-09-02T10:12:04.547 回答