0

我的页面上有多个项目的列表,每个项目都有一个联系人使用按钮,如果用户单击contact us页面,则会打开一个弹出表单,我正在使用 Ajax 执行此操作。Network但是每当我单击按钮时,它都会显示在(调试后)中找不到的页面。请让我知道如何解决这个问题。

这是我的urls.py文件...

re_path('ajax/datadis/<int:pk>/$', views.dataview, name='dataview'),

这是我的views.py文件...

def dataview(request, id):
    template_name = 'page/ajax/popup.html'
    return render(request, template_name)

这是我的index.html文件代码...

<ul class="product-rating">
    <button title="Enquire for {{i.name}}" id="id_{{i.id}}" class="btn btn-primary btn-sm" onclick="projectDetail({{i.id}})" data-url="{% url 'appname:projectview' i.id %}">Contact Us</button>
</ul>

这是我的 Ajax 代码...打开弹出表单...

</script>
function projectDetail(id){
var html = '';
var modalDiv = $("#modalData");
$.ajax({
url: "{% url 'appname:dataview' %}"+id,
type:"GET",
dataType:"HTML",
success: function(res) {
 modalDiv.html(res);
$("#exampleModal").modal("show");
 }
});
}
</script>

这是我的弹出模型代码...

<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
  <div class="modal-content">
    <div class="modal-header">
      <h5 class="modal-title" id="exampleModalTitle">Modal title</h5>
      <button type="button" class="close" data-dismiss="modal" aria-label="Close">
        <span aria-hidden="true">&times;</span>
      </button>
    </div>
    <div class="modal-body" id="modalData">
      <p>{{i.name}}</p>
    </div>
    <div class="modal-footer">
      <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
      <button type="button" class="btn btn-primary">Save changes</button>
    </div>
  </div>
</div>

这就是error我在控制台中得到的。

Page not found (404)    
Request URL:    http://127.0.0.1:8000/ajax/datadis/%3Cint:pk%3E/161
4

1 回答 1

1

re_pathhas 有不同的语法。看起来这个网址的路径就足够了。

path('ajax/datadis/<int:pk>/', views.dataview, name='dataview'),

模板中的 url 标记将期望 id 作为参数。

{% url 'appname:dataview' id %}",
于 2020-12-17T16:29:02.290 回答