【问题标题】:Update a count variable in model object更新模型对象中的计数变量
【发布时间】:2012-08-27 10:12:22
【问题描述】:

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

我的模型是这样的:

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

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

【问题讨论】:

  • 您可能还想看一些代码基础知识,在从函数返回值后,没有代码通过该点执行,因此 val=ob.count 无用
  • @Hedde : 抱歉......我把它放在那里了......我之前正在测试 try 块......

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


【解决方案1】:

由于您错过了“此处的其他变量”,因此不清楚您是否意识到 Django 模型字段需要是字段 - 即 models.CharFieldmodels.IntegerField 等。放入 @987654323 @ 只是创建一个不会保存在数据库中的类变量。你可能只想要count = models.IntegerField(default=0)

【讨论】:

    猜你喜欢
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多