段從this question我在哪裏放置這個計數器增量代碼?
from django.db.models import F
...
MyModel.objects.filter(id=...).update(hit_count=F(hit_count)+1)
有人建議把中間件採取和我讀了一下關於middleware但將不勝感激,如果有人能指出,他們將在這種情況下做什麼。以我的Bug
模型爲例,它有一個獨特的slug字段和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)
觀看。我還沒有添加新列,但我想這只是hit_counter = models.IntegerField()
由於模板已被緩存,選項三並不適合此目的。 的代碼應該住在BugManager類,但被擺放在你的視圖或只是在視圖的開始裝飾大概叫。 – rewritten 2011-03-20 14:11:33