2012-04-09 91 views
0

如何计算对象的调用次数。例如:我有一个图像应用程序,我想向用户显示图片被调用的频率。像YouTube上的videosviewsDjango计数对象调用

回答

2

您需要在表格中存储计数并在每次使用图像时增加计数。

首先,一个字段添加到您的模型,如果你没有一个已经存储计数:

class MyImageClass(models.Model): 
    ... 
    views = models.PositiveIntegerField(default=0) 

然后您就需要创建一个视图,将返回图像数据,并增加查看次数。

def my_image_view(request, id): 
    instance = get_object_or_404(MyImageClass, id=id) 

    filename, ext = os.path.splitext(instance.image_field.name) 
    ext = ext[1:].lower() # remove period and normalize to lowercase 

    instance.views += 1 
    instance.save() 

    response = HttpResponse(instance.image_field.read(), mimetype='image/%s' % ext) 
    response['Content-Disposition'] = 'inline;filename=%s.%s' % (filename, ext) 
    return response 

胡克认为成URLPATTERN,然后在你的模板调用与图像:

<img src="{% url my_image_view_name id=my_image.id %}"> 

你肯定会需要做一些优化了,并且有线程安全问题考虑一下,但这足以让你的球滚动起来。

1

有没有任何内置的方法来允许这一点。您必须将信息存储到数据库中