Jquery 404 django中弹出模式表单的错误
我得到一个弹出式表单404错误,我试图打开点击文本链接 accounts/url.pyJquery 404 django中弹出模式表单的错误,jquery,python,django,Jquery,Python,Django,我得到一个弹出式表单404错误,我试图打开点击文本链接 accounts/url.py url("_/user-popup/(?P<key>\w+)/$", views.user_popup_form, name="user_popup_form"), url("_/user-popup/(?P<key>\w+)/(?P<pk>[^/]+)/$", views.user_popup_form, name="user_popup_form"), 静态文件夹下的
url("_/user-popup/(?P<key>\w+)/$", views.user_popup_form, name="user_popup_form"),
url("_/user-popup/(?P<key>\w+)/(?P<pk>[^/]+)/$", views.user_popup_form, name="user_popup_form"),
静态文件夹下的site.js
$("body").on("click tap", "a[data-user-popup]", function(e) {
e.preventDefault();
var button = $(this);
button.attr("disabled", true).find("span.fa").addClass("fa-spinner fa-spin");
var url = "/_/user-popup/" + button.attr("data-user-popup") + "/";
if(button.attr("data-item-id")) {
url += button.attr("data-item-id") + "/";
}
alert(url);
$.ajax({
url: url,
type: "GET"
}).always(function() {
button.attr("disabled", false).find("span.fa").removeClass("fa-spinner fa-spin");
}).done(function(data) {
bootbox.hideAll();
bootbox.dialog({
title: data.title,
message: data.form,
html: true,
buttons: {
"save": {
className: "btn-success",
label: "Save",
callback: function() {
var saveButton = $(".bootbox-footer .btn-success");
saveButton.attr("disabled", true).find("span.fa").addClass("fa-spinner fa-spin");
$.ajax({
url: url,
type: "POST",
data: $(".bootbox-body form").serialize(),
headers: { "X-CSRFToken": Refocus.csrfToken }
}).always(function() {
saveButton.attr("disabled", false).find("span.fa").removeClass("fa-spinner fa-spin");
}).done(function(data) {
if(data.success) {
bootbox.hideAll();
for (var key in data.content) {
$(key).html(data.content[key]);
}
} else {
$(".bootbox-body").html(data.form);
$(".modal").scrollTop(0);
}
});
return false;
}
},
"cancel": {
className: "btn-default",
label: "Cancel"
}
}
}).on('shown.bs.modal', function () {
$(".modal.fade.in .modal-body input, .modal.fade.in .modal-body textarea, .modal.fade.in .modal-body select").first().select().focus();
});
$(".modal.fade.in").scrollTop(0);
});
});
用户配置文件url为
http://127.0.0.1:8000/account/user
获得弹出窗口的代码是
{% if profile.pk == request.user.profile.pk %}
<p><a data-user-popup="profile" href="#" class="btn btn-primary"><span class="fa fa-edit"></span> Edit profile</a></p>
{% endif %}
{%if profile.pk==request.user.profile.pk%}
{%endif%}
非常感谢您的帮助。提前感谢。您需要在项目URL.py文件()中包含应用程序URL.py文件:
如果您的settings.py中存在
DEBUG=True
,会出现什么错误?settings.py中的DEBUG设置为True。我在终端中得到错误信息。它是未找到:/user\u popup/profile[28/Aug/2017 22:59:09]“GET/user\u popup/profile HTTP/1.1”404 2187
检查chrome开发工具网络选项卡中的完整响应。上面的js代码似乎总是添加一个尾随斜杠,但一定要检查附加斜杠
设置,由于该错误消息表明您请求的url不在url文件中(缺少尾随斜杠)。我检查了chrome响应,不知道它为什么在project.url
中查找该url,而它应该查看project.appname.url
。我认为弹出窗口可以从http://127.0.0.1:8000/user
但不是来自http://127.0.0.1:8000/account/user
。我做到了。仍然是404。
{% if profile.pk == request.user.profile.pk %}
<p><a data-user-popup="profile" href="#" class="btn btn-primary"><span class="fa fa-edit"></span> Edit profile</a></p>
{% endif %}
from django.conf.urls import include, url
urlpatterns = [
(...)
url(r'_/', include('account.urls')),
]