, как я новичок в кодировании и в настоящее время реализованы кнопки, как в интернет-книги - Танго с Джанго:Нужна помощь в создании Django + Ajax кнопку
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'),
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();
});
});
});
спасибо, я знаю, мне понадобится новая модель для подобных, но не совсем понимаю, как мне нужно изменить Ajax и посмотреть, чтобы разместить его. – ollysmall
Начните с изменения вида; создайте новый объект UserLike. – mhkuu