【发布时间】:2020-06-09 14:34:21
【问题描述】:
我正在使用 Python 3.7.4 和 Django 3.0.3,并且我在前端应用程序中运行了一个 JavaScript 中的脚本 Ajax。当用户单击链接时,必须将变量发送到后端 python。看例子
Javascript
$('.likebutton').click(function() {
var catid;
catid = $(this).attr("data-catid");
$.ajax({
type: "GET",
// url: "/likePost",
url: "/likePost/" + catid,
/* data: {
post_id: catid
},
*/
success: function(data) {
$('#like' + catid).remove();
$('#message').text(data);
}
})
});
urls.py
在我的应用程序的 urlpattner 中
urlpatterns = [
path('', views.index, name='index'), # index view at /
path('likePost/', views.likePost, name='likepost'), # likepost view at /likepost
]
views.py
def likePost(request):
if request.method == 'GET':
post_id = request.GET['post_id']
likedpost = Post.obejcts.get(pk=post_id) #getting the liked posts
m = Like(post=likedpost) # Creating Like Object
m.save() # saving it to store in database
return HttpResponse("Success!") # Sending an success response
else:
return HttpResponse("Request method is not a GET")
在调试中我收到以下消息错误
Not Found: /likePost
[25/Feb/2020 16:12:17] "GET /likePost?post_id=1 HTTP/1.1" 404 2335
我做错了什么?
【问题讨论】:
-
您混淆了我提供的两种解决方案。您现在将
post_id作为 path 参数 传递,但希望它作为 querystring 变量出现在您的视图中。请仔细阅读,如果仍然没有意义,请告诉我,我会尽力详细说明。 -
感谢@ReinstateMonica 帮助我,但错误仍然存在。我尝试了您给我的 2 个选项。但没有成功
-
好的,现在是。我使用 post_id 作为查询字符串。谢谢
标签: django python-3.x ajax