ajax 提示404 not found,Django+AJAX POST 404(未找到)

博客作者在Django项目中遇到一个问题,即尝试使用AJAX实现论坛帖子的点赞功能时遇到了404错误。他们希望在不刷新页面的情况下,根据用户的点击操作动态增删点赞数。在views.py中定义了toggle_like视图函数来处理POST请求,通过用户ID和slug获取问题对象,并根据点赞情况添加或移除用户。同时,在问题.html中使用jQuery的AJAX方法发送POST请求到toggle_like视图。然而,目前的问题是当尝试触发点赞操作时,服务器返回了404错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我试图使用AJAX在我的Django应用程序中实现一个类似的功能,但是当我尝试这样做时,我得到了一个POST http://localhost:8000/forum/like/ 404 (Not Found)。我想做的就是在不刷新整个页面的情况下从喜欢列表中添加/删除用户。在

在视图.py在@require_POST

def toggle_like(request):

if request.method == "POST":

user = request.user

slug = request.POST.get('slug', None)

question = get_object_or_404(Question, slug=slug)

if question.likes.filter(id=user.id).exists():

question.likes.remove(user)

else:

question.likes.add(user)

context = {'likes-count': question.likes.count}

return HttpResponse(json.dump(context), content_type='application/json')

在网址.py在

^{pr2}$

在问题.html在{% block javascript %}

$('#like').click(() => {

$.ajax({

method: 'POST',

url: "{% url 'forum:toggle-like' %}",

data: {

'slug': $(this).attr('name'),

'csrfmiddlewaretoken': '{{ csrf_token }}'

},

dataType: 'json',

success: (response) => {

alert(response.message);

},

error: (response, error) => {

alert(response.responseText);

}

})

})

{% endblock %}

{% block content %}

Likes: {{ question.likes.count }}

{% endblock %}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值