def get_soulmates_all_users(): """ Encuentra la afinidad entre todos los usuarios. """ users1 = UserLikees.objects.all() users2 = UserLikees.objects.all() Soulmates_Coef.objects.all().delete() for user1 in users1: votes1 = Vote.objects.filter(user=user1.id) if votes1.count() < 40: continue votes_a = {} for vote1 in votes1: votes_a[vote1.item.id] = vote1.rate for user2 in users2: if user1.id == user2.id: break votes2 = Vote.objects.filter(user=user2.id) if votes2.count() < 40: continue votes_b = {} for vote2 in votes2: votes_b[vote2.item.id] = vote2.rate print "Calculando coef G entre " + user1.username + "(" + str( votes1.count( )) + ")" + " " + user2.username + "(" + str( votes2.count()) + ")" + "..." coef = Soulmates_Coef() coef.user1 = user1 coef.user2 = user2 coef.coef = soulmates(votes_a, votes_b) coef.save()
def get_soulmates_all_users(): """ Encuentra la afinidad entre todos los usuarios. """ users1 = UserLikees.objects.all() users2 = UserLikees.objects.all() Soulmates_Coef.objects.all().delete() for user1 in users1: votes1 = Vote.objects.filter(user=user1.id) if votes1.count() < 40: continue votes_a = {} for vote1 in votes1: votes_a[vote1.item.id] = vote1.rate for user2 in users2: if user1.id == user2.id: break votes2 = Vote.objects.filter(user=user2.id) if votes2.count() < 40: continue votes_b = {} for vote2 in votes2: votes_b[vote2.item.id] = vote2.rate print "Calculando coef G entre " + user1.username + "(" + str(votes1.count()) + ")" + " " + user2.username + "(" + str(votes2.count()) + ")" + "..." coef = Soulmates_Coef() coef.user1 = user1 coef.user2 = user2 coef.coef = soulmates (votes_a, votes_b) coef.save()
def get_soulmates_by_user(self, user): """ Calcula la afinididad de un usuario con el resto de usuarios. """ Soulmates_Coef.objects.filter(Q(user1=user) | Q(user2=user)).delete() votes_user = Vote.objects.filter(user=user.id) if votes_user.count() < 40: return votes_a = {} for vote_user in votes_user: votes_a[vote_user.item.id] = vote_user.rate users = UserLikees.objects.all().exclude(pk=user.id) for user_soul in users: votes_soul = Vote.objects.filter(user=user_soul.id) if votes_soul.count() < 40: continue votes_b = {} for vote_soul in votes_soul: votes_b[vote_soul.item.id] = vote_soul.rate print "Calculando coef G entre " + user.username + "(" + str( votes_user.count( )) + ")" + " " + user_soul.username + "(" + str( votes_soul.count()) + ")" + "..." coef = Soulmates_Coef() coef.user1 = user coef.user2 = user_soul coef.coef = self.soulmates(votes_a, votes_b) coef.save()
def get_soulmates_by_user(self, user): """ Calcula la afinididad de un usuario con el resto de usuarios. """ Soulmates_Coef.objects.filter(Q(user1=user) | Q(user2=user)).delete() votes_user = Vote.objects.filter(user=user.id) if votes_user.count() < 40: return votes_a = {} for vote_user in votes_user: votes_a[vote_user.item.id] = vote_user.rate users = UserLikees.objects.all().exclude(pk=user.id) for user_soul in users: votes_soul = Vote.objects.filter(user=user_soul.id) if votes_soul.count() < 40: continue votes_b = {} for vote_soul in votes_soul: votes_b[vote_soul.item.id] = vote_soul.rate print "Calculando coef G entre " + user.username + "(" + str(votes_user.count()) + ")" + " " + user_soul.username + "(" + str(votes_soul.count()) + ")" + "..." coef = Soulmates_Coef() coef.user1 = user coef.user2 = user_soul coef.coef = self.soulmates(votes_a, votes_b) coef.save()