所有,我正在使用Django做一个社交网站,现在我正在尝试做朋友网络。 我现在遇到的问题是,当我使用Ajax在URL中传递用户ID时,找不到抛出的URL错误,也许看到代码会更清晰。 代码如下
我试图带走awayid,也就是说,带走ajax,url和method中的所有id,然后它就可以工作了。但是如果我在其中添加id参数,那么它将无法正常工作
html template
<button class="add-friend-btn" id="add-friend"> Add friend
<script src="{% static 'account/js/friends.js'%}" type="text/javascript" ></script>
<script type="text/javascript">
var userprofilePk = "{{userprofile.pk}}"; // other user's id(primary key)
</script>
{% endif %}
javascript friend.js
$(document).ready(function() {
var addFriend = document.getElementById('add-friend');
addFriend.addEventListener("click", function (event) {
$.ajax({
type: 'POST',
headers: { "X-CSRFToken": csrftoken },
url: "ajax/friend-request/send/"+userprofilePk+"/",
data: {
"test": "test",
},
dataType: 'json',
success: function (data) {
},
error: function (error) {
},
});
});
});
Django url
urlpatterns = [
re_path("ajax/friend-request/send/<pk>/", views.send_friend_request, name="user_send_request"),
]
views.py
def send_friend_request(request, id):
print("send_friend_request")
payload = {"test": "test"}
return HttpResponse(json.dumps(payload), content_type='application/json')
错误消息是:
Not Found: /account/profile/sm10547/ajax/friend-request/send/2/
app_1 | HTTP POST /account/profile/sm10547/ajax/friend-request/send/2/ 404 [0.01, 172.18.0.1:38852]
答案 0 :(得分:0)
public IActionResult AddNewProduct([FromBody] Product newProduct)
{
...
}
之类的URL参数,例如:
<int:pk>
。 docs for path() path("ajax/friend-request/send/<int:pk>/",
views.send_friend_request, name="user_send_request")
:使用(?P<pk>[0-9])
。 docs for re_path() 在您的情况下,使用re_path(r"ajax/friend-request/send/(?P<pk>[0-9])/$", views.send_friend_request, name="user_send_request")
可以正常工作。