2012-04-09 5 views
0

개체 호출을 어떻게 계산합니까? 예 : 이미지 앱이 있으며 사진을 얼마나 자주 불러 왔는지 보여주고 싶습니다. youtube의 videoviews와 비슷합니다.장고 카운트 개체 호출

답변

2

이미지를 사용할 때마다 테이블에 카운트를 저장하고 증분해야합니다.

첫째, 당신이 수를 저장하기 위해 이미이없는 경우 모델에 필드를 추가 :

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

그런 다음 이미지 데이터를 반환하고가 증가하는 뷰를 만들어야을 조회수. 당신은 반드시 그 몇 가지 최적화를해야 할 것이다, 그리고 스레드 안전 문제가있다

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

:

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로보기를 한 다음 템플릿으로 이미지를 호출 고려해보십시오,하지만 그건 당신을 위해 공을 굴리기에 충분합니다.

1

허용하는 방법이 없습니다. 정보를 데이터베이스에 저장해야합니다.