def delete_user(sender,instance,using,**kwargs): #Eliminamos sus comentarios print "On eliminar" Comentario.objects.filter(author=instance.id).delete() #Eliminamos sus votos print "Antes" Vote.objects.filter(user=instance.id).delete() print "DEspues" recommender=EstablecimientosRecommender() recommender.precompute()
def delete_user(sender, instance, using, **kwargs): #Eliminamos sus comentarios print "On eliminar" Comentario.objects.filter(author=instance.id).delete() #Eliminamos sus votos print "Antes" Vote.objects.filter(user=instance.id).delete() print "DEspues" recommender = EstablecimientosRecommender() recommender.precompute()
def establecimiento_delete(sender, instance, **kwargs): u""" Cuando una establecimiento se borra tambíen se borrara los votos """ print "Establecimiento eliminado" id_establecimiento=instance.id Vote.objects.filter(object_id=id_establecimiento).delete() Score.objects.filter(object_id=id_establecimiento).delete() print "Calificacion eliminada" recommender=EstablecimientosRecommender() print "Eliminando recomendacion" recommender.storage.remove_recommendations(instance) print "Computando" recommender.precompute()
def post(self, request, pk,format=None): u""" Se modifica una calificacion si existe , de lo contrario se crea una nueva. Returns: Ok HTTP_201_CREATED si to salio bien, de lo contrario HTTP_400_BAD_REQUEST """ try: calificacion = request.DATA.get("calificacion") respuesta="" establecimiento = Establecimiento.objects.get(id=pk) if calificacion: calificacion=int(calificacion) if calificacion>=1 and calificacion<=5 : recommender=EstablecimientosRecommender() print "BIne" # print establecimiento # print calificacion # print request.user # print request.META['REMOTE_ADDR'] # print request.__dict__ # print "----------__>\n" # print request.COOKIES establecimiento.rating.add( score=calificacion, user=request.user, ip_address=request.META['REMOTE_ADDR'] ) print "MAL" print "Actualizando matriz" recommender.precompute() respuesta="Calificacion realizada" return Response(respuesta, status=status.HTTP_201_CREATED) else: respuesta="Valor no valido" except Exception, e: print "Ell establecimiento no existe " respuesta="Algo salio mal ",str(e) print e
def obtener_recomendacion(self, user): print "Prediciendo recomendacion" recomendador_instance = EstablecimientosRecommender() recomendaciones = recomendador_instance.storage.get_recommendations_for_user( user) print recomendaciones if recomendaciones: print "Recomendando" result = [] for recomendacion in recomendaciones: result.append(recomendacion.object) recomendaciones = result recomendaciones_leng = len(recomendaciones) if recomendaciones_leng < 10: query = Establecimiento.objects.all().order_by('-rating_score') for establecimiento in query: if establecimiento not in recomendaciones: if not Vote.objects.filter( object_id=establecimiento.id, user=user.id): recomendaciones.append(establecimiento) if len(recomendaciones) >= 10: break else: query = Establecimiento.objects.all().order_by('-rating_score') for establecimiento in query: if establecimiento not in recomendaciones: if not Vote.objects.filter(object_id=establecimiento.id, user=user.id): recomendaciones.append(establecimiento) if len(recomendaciones) >= 10: print "Se completo la lista de 10 recomendaciones" break print "No se encontraron recomendaciones" return recomendaciones