Ich bin neu in Codierung und haben zur Zeit die Schaltfläche aus dem Online-Buch umgesetzt - Tango mit django:Benötigen Taste Django + Ajax wie das Bilden helfen
http://www.tangowithdjango.com/book17/chapters/ajax.html#add-a-like-button
jedoch für mein Projekt muss ich aufzeichnen die User haben was gemocht und stellen auch sicher, dass sie nur einmal einen Gegenstand mögen (ähnlich wie Instagram/Facebook). Ich habe andere verwandte Fragen online angeschaut, aber festgestellt, dass es keine gut durchdachte Antwort für andere Anfänger gibt. Wenn jemand eine leicht zu befolgende Antwort geben könnte, um mir und anderen Leuten zu helfen, die versuchen, dasselbe in der Zukunft zu erreichen, würde es sehr geschätzt werden!
meine aktuellen Code ist wie folgt:
Modelle
class UserProject(models.Model):
user = models.ForeignKey(User)
title = models.CharField(max_length=100)
date_created = models.DateTimeField(auto_now_add=True)
project_likes = models.IntegerField(default=0)
slug = models.SlugField(max_length=100, unique=True)
Ansichten
@login_required
def like_project(request):
proj_id = None
if request.method == 'GET':
proj_id = request.GET['project_id']
likes = 0
if proj_id:
proj = UserProject.objects.get(id=int(proj_id))
if proj:
likes = proj.project_likes + 1
proj.project_likes = likes
proj.save()
return HttpResponse(likes)
Vorlage
<strong id="like_count">{{ project.project_likes }}</strong> likes
{% if user.is_authenticated %}
<button id="likes" data-projid="{{project.id}}" class="btn btn-danger-outline btn-sm" type="button"> <i class="fa fa-heart-o" aria-hidden="true"></i>
like
</button>
{% endif %}
URL
url(r'^like_project/$', views.like_project, name='like_project'),
Ajax
$(document).ready(function() {
$('#likes').click(function(){
var projid;
projid = $(this).attr("data-projid");
$.get('/like_project/', {project_id: projid}, function(data){
$('#like_count').html(data);
$('#likes').hide();
});
});
});
danke, ich weiß, ich brauche ein neues Modell für die Likes, aber verstehe nicht ganz, wie ich das Ajax ändern und anzeigen muss, um es anzupassen. – ollysmall
Beginnen Sie mit der Änderung der Ansicht; Erstellen Sie dort ein neues UserLike-Objekt. – mhkuu