발췌문 그것은 미들웨어에 넣어 제안했다 this question어디에서이 히트 카운터 증분 코드를 배치합니까?
from django.db.models import F
...
MyModel.objects.filter(id=...).update(hit_count=F(hit_count)+1)
에서 가져온 나는 middleware에 조금을 읽을 수는 있지만 누군가가이 상황에서 어떻게 할 것인지 지적 할 수 있다면 매우 감사하겠습니다. 예를 들어 내 Bug
모델을 사용하면 고유 한 슬러그 필드와 pk가 있습니다.
여기 내 모델의 :
class Bug(models.Model):
name = models.CharField(max_length=100)
slug = models.SlugField(unique=True)
excerpt = models.TextField()
excerpt_markdown = models.TextField(editable=False, blank=True)
summary = models.TextField()
summary_markdown = models.TextField(editable=False, blank=True)
#workaround = models.TextField()
#workaround_markdown = models.TextField(editable=False, blank=True)
date_added = models.DateTimeField()
poster = models.ForeignKey(User)
tags_string = TagField()
class Meta:
ordering = ['name']
def __unicode__(self):
return self.name
def get_absolute_url(self):
return '/bugs/%s/' % self.slug
def save(self, force_insert=False, force_update=False):
self.summary_markdown = markdown( self.summary )
self.excerpt_markdown = markdown (self.excerpt)
#self.workaround_markdown = markdown( self.workaround)
super(Bug, self).save(force_insert, force_update)
링크 /bugs/(slug)
을 통해 볼 수 있습니다. 나는 새 열을 추가 아직했습니다하지만 난 당신이 세 가지 옵션이 그냥 내가 장식 내 퍼팅이 모델
옵션 3은 템플릿이 캐시되기 때문에 목적에 적합하지 않습니다. 코드는 BugManager 클래스에 있어야하지만보기 주위의 장식 자나보기 시작 부분에있을 수 있습니다. – rewritten