段从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