Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/04/2013, 13:14
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 2 meses
Puntos: 1360
Respuesta: Como guardar el numero de visitas a un objeto

Puedes hacer un método llamado add_visit() en el modelo Article

Código Python:
Ver original
  1. class Article(models.Model):
  2.     ...
  3.     visits_count = models.IntegerField(default=0)
  4.  
  5.     ...
  6.  
  7.     def add_visit(self):
  8.         if self.visits_count is not None:
  9.             self.visits_count += 1
  10.         else:
  11.             self.visits_count = 0

Y el detail view.
Código Python:
Ver original
  1. from django.views.generic.detail import DetailView
  2.  
  3. from articles.models import Article
  4.  
  5. class ArticleDetailView(DetailView):
  6.  
  7.     model = Article
  8.  
  9.     def get_context_data(self, **kwargs):
  10.         context = super(ArticleDetailView, self).get_context_data(**kwargs)
  11.         self.object.add_visit()
  12.         self.object.save()
  13.         return context

Obviamente lo primero que tienes que hacer es definir el concepto de visita.

Que tal si hago 10 visitas con la misma ip?, que tal si solo veo 10 segundos de video y lo cierro? una petición get y una petición post son iguales? Que tal si tienes 2 visitas al mismo tiempo como manejas que sea thread safe?

Última edición por razpeitia; 17/04/2013 a las 13:23