Привет в учебных целях создаю проект на подобии тостера, хочу добавить кнопку лайка на мою модель коментариев. Делал по гайду из tangowithdjango
apps/questions/models:
class Answer(models.Model):
text = models.TextField()
date = models.DateTimeField(default=datetime.datetime.now)
likes = models.IntegerField(default=0)
resolve = models.IntegerField(default=0)
author = models.ForeignKey(CustomUser)
question = models.ForeignKey(Question)
apps/questions/views:
@login_required
def add_like(request):
ans_id = None
if request.method == 'GET':
ans_id = request.GET['answer_id']
likes = 0
if ans_id:
ans = Answer.objects.get(id=(int(ans_id)))
if ans:
likes = ans.likes + 1
ans.likes = likes
ans.save()
return HttpResponse(likes)
apps/questions/ulrs:
urlpatterns = [
url(r'add_like/$', views.add_like, name='add_like'),]
question.html:
{% for answer in answers %}
<div class="container-fluid no-padding">
{{ answer.text }}
</div>
<div class="container-fluid author-question">
<p>posted: {{ answer.date.day|stringformat:"02d" }}.{{ answer.date.month|stringformat:"02d"}}.{{ answer.date.year}}</p>
<p>by: {{ answer.author.username }}</p>
</div>
{% if user.is_authenticated %}
<button class="btn btn-default likes-button" type="button" data-ansid="{{ answer.id }}">
like | <strong id="like_count">{{ answer.likes }}</strong>
</button>
{% endif %}
{% endfor %}
js/ajax.js:
$('.likes-button').click(function(){
var ansid;
ansid = $(this).attr("data-ansid");
$.get('/apps/questions/add_like/', {answer_id: ansid}, function(data){
$('#like_count').html(data);
$('#likes').hide();
});
});
Ничего не происходит при нажатии, если скопировать js файл в консоль браузера, выдает 404:
GET
127.0.0.1:8000/apps/questions/add_like?answer_id=1 404 (NOT FOUND)
upd: Заработало, нужно было в ajax.js убрать /apps/ перед questions/add_like/ .
Правда работает только когда загружаю код в консоль браузера, хотя js файл подключен.