更新模型对象中的计数变量

时间:2012-09-02 09:39:45

标签: django django-models django-views django-1.3

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

我的模特是这样的:

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))

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

1 个答案:

答案 0 :(得分:3)

由于你错过了其他vars",你不清楚你是否意识到Django模型字段必须是字段 - 也就是{{ 1}},models.CharField等等。放置models.IntegerField只会创建一个不会在数据库中保留的类变量。您可能只想要count=0