我用ajax创建“like button”。我有问题的网址。
当我点击,我有404:URL:http://127.0.0.1:8000/questions/get/1/%7B%%20url%20'add_like'%20 %% 7D
我不知道这段代码有什么问题。
服务器控制台响应此:POST/questions/get/1 /%7B %% 20url%20'add_like'%20 %% 7D HTTP/1.1“404 3710
我添加了一些打印功能,测试,查看不起作用
我认为问题并不复杂,但我看不出有什么错我的网址
也许你可以给我建议,我该如何测试这个问题django + ajax post form trouble
型号:
class Answer(models.Model):
text = models.TextField()
date = models.DateTimeField(default=datetime.datetime.now)
author = models.ForeignKey(CustomUser)
question = models.ForeignKey(Question)
like = models.PositiveIntegerField(default=0)
查看:
def add_like(request):
if request.POST:
answer_pk = request.POST.get('answer_pk')
new_like = Answer.objects.get(pk=answer_pk)
new_like.like += 1
new_like.save()
return HttpResponse()
HTML中简称:
{% for answer in answers %}
<input type="button" name="{{ answer.pk }}" value="Like" class="addLike" />
{% endfor %}
AJAX:
$('.addLike').click(function(){
$.ajax({
type: "POST",
url: "{% url 'add_like' %}",
data: {'answer_pk': $(this).attr('name'), 'csrfmiddlewaretoken': '{{ csrf_token }}'},
dataType: "json",
});
})
和短格式的URL:
项目/ URL:
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^questions/', include('apps.questions.urls')),]
应用程序/问题/网址
urlpatterns = [
url(r'get/(?P<question_pk>[0-9]+)/$', views.get_question, name='get_question'),
url(r'add_answer/(?P<question_pk>[0-9]+)/$', views.add_answer, name='add_answer'),
url(r'add_like/$', views.add_like, name='add_like'),]
谢谢!它非常简单。我在base.html模板的'