0
처럼 장고 + 아약스하는 데 도움이 필요하고 현재 온라인 책 등 버튼을 구현 한 - 장고와 함께 탱고 : 코딩에 나는 새로운 오전 버튼
http://www.tangowithdjango.com/book17/chapters/ajax.html#add-a-like-button
그러나 내 프로젝트를 위해 내가 기록 할 필요가
하는 사용자는 무엇을 좋아하고 또한 항목을 한 번만 좋아할 수 있음을 보장합니다 (Instagram/facebook과 유사). 나는 다른 관련 질문을 온라인에서 살펴 봤지만 다른 초보자들이 따라야 할 대답이 잘되어 있지 않다는 것을 발견했다. 누군가가 저를 도울 수있는 답을 쉽게 따라 할 수 있다면 미래에 같은 목표를 달성하려는 다른 사람들을 도울 수 있습니다.모델
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)
전망
@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)
템플릿
<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'),
아약스
$(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();
});
});
});
감사합니다. 좋아하는 사용자를 위해 새로운 모델이 필요 하겠지만 Ajax를 변경하고이를 수용 할 수있는 방법을 이해하지 못했습니다. – ollysmall
보기를 수정하여 시작하십시오. 거기에 새로운 UserLike 객체를 생성하십시오. – mhkuu