2012-09-02 2 views
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)) 

같다 ? 등 models.IntegerField, models.CharField, 즉 count=0을 두는 것은 단지 클래스를 만드는 - 당신이 "여기 다른 바르"는을 놓친 이후

+0

함수에서 값을 반환 한 후 일부 코드 기본 사항을 살펴볼 수도 있습니다. 코드가 실행되면 해당 지점이 전달되므로 val = ob.count는 쓸모가 없습니다. –

+0

@Hedde : 미안하지만 .. .i는 try 블록을 이전에 테스트 중이었습니다. –

답변

3

는, 당신이 장고 모델 필드는, 음, 할 필드가 필요하다고 인식하는 경우 분명하지 않다 변수는 데이터베이스에 유지되지 않습니다. 당신은 아마 count = models.IntegerField(default=0)을 원할 것입니다.