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 に答える