def set_comment(request, id, model, app_label, comment): try: general = GetContent(model, app_label, id) except: return json.dumps({'fehler': fehlerliste['1']}) # Wenn comment leer ist if not comment: return json.dumps({'fehler': fehlerliste['4']}) # Überprüfung, ob eine Bewertung über ein Kommentar schon verfügt. try: user_comment = Rating.objects.get(content_type__pk=general.model_type.id, object_id=general.content.id, user=request.user) user_comment.kommentar = str(comment) except: user_comment = Rating(content_object=general.content, kommentar=comment, user=request.user) user_comment.save() ratings = Rating.objects.filter(content_type__pk=general.model_type.id, object_id=general.content.id, kommentar__isnull=False) try: user_comment = Rating.objects.get(content_type__pk=general.model_type.id, object_id=general.content.id, kommentar__isnull=False, user=request.user) except: pass # Daten werden in Variablen gespeichert und an Template übergeben return render(request, 'rating/comments_box.html', { 'ratings': ratings, 'user_comment': user_comment, })
def set_like(request, id, model, app_label): content_type = ContentType.objects.get(app_label=app_label, model=model) try: content = content_type.get_object_for_this_type(id=id) except: return json.dumps({'message': "Produkt nicht vorhanden!"}) model_type = ContentType.objects.get_for_model(content) try: rating = Rating.objects.get(content_type__pk=model_type.id, object_id=content.id, user=request.user) if rating.likes: rating.likes = False else: rating.likes = True except: rating = Rating(content_object=content, likes=True, user=request.user) rating.save() return json.dumps({'like': rating.likes})
def set_rating(request, id, model, app_label, sterne): ip_object = "" try: general = GetContent(model, app_label, id) except: return json.dumps({'fehler':fehlerliste['1']}) # Wenn ein SternValue grösser ist. if int(sterne) > 5: return json.dumps({'fehler': fehlerliste['1']}) try: content = general.content_type.get_object_for_this_type(id=id) except: return json.dumps({'fehler': fehlerliste['3']}) # IP ermitteln if not request.user.is_authenticated(): ip = get_ip(request) # UserIP Tabelle wird nach angefangene IP Adresse durchgesucht. try: ip_object = UserIP.objects.get(ip=ip) # IP wird neu gespeichert oder überschrieben, damit es keine doppelte Einträge mit gleichen IP-Adresse gibt except: ip_object = UserIP(ip=ip) ip_object.save() # Bewertungen speichern try: # Wenn IP vorhanden ist, wird die Bewertungen-Tabelle nach Einträge mit dieser Adresse durchgesucht. if ip_object: rating = Rating.objects.get(content_type__pk=general.model_type.id, object_id=general.content.id, ip=ip_object) # Sonst die Bewertungen mit dem ID vom eingeloggten User. else: rating = Rating.objects.get(content_type__pk=general.model_type.id, object_id=general.content.id, user=request.user) # Die Sterne werden neu abgespeichert. rating.sterne = int(sterne) except: if ip_object: rating = Rating(content_object=content, sterne=sterne, ip=ip_object) else: rating = Rating(content_object=content, sterne=sterne, user=request.user) rating.save() menge = Rating.objects.filter(content_type__pk=general.model_type.id, object_id=content.id, sterne__isnull=False).count() return json.dumps({'message': sterne, 'menge': menge})