【发布时间】:2015-10-21 17:54:44
【问题描述】:
我用 ajax 创建“点赞按钮”。我的网址有问题。
当我点击时,我有 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
我在视图顶部添加了一些打印功能以进行测试,视图不起作用。
我认为问题并不复杂,但我看不出我的网址有什么问题
也许你可以给我建议,我该如何测试这个问题
型号:
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",
});
})
和短格式的网址:
项目/网址:
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'),]
【问题讨论】: