更改站点 URL 后未找到 Django 应用请求

如何解决更改站点 URL 后未找到 Django 应用请求

我有一个网页,它在启动时执行异步请求以获取 JSON 文件

controller.js

$.ajax(    
    {
        url: '/get_lines/',data_type: 'json',success: function(data) 
        {
            fillLinesMenu(JSON.parse(data))
            $("#form-lines option:eq(1)").attr("selected","selected");
            $("#form-lines").selectmenu("refresh")
        }
    }
)

project/field_plot/urls.py

urlpatterns = [
    url(r'^get_lines/$',views.get_lines,name='get_lines'),url(r'^get_plot/$',views.get_plot,name='get_plot'),url(r'',views.index,name='index'),]

project/urls.py

urlpatterns = [
    path('admin/',admin.site.urls),path('sky_map/',include('sky_map.urls')),path('',include('field_plot.urls')),]

这已经运行了很长时间了。如您所见,我一直在研究 field_plot - 因此使用空 URL,以简化页面加载 - 但现在我需要将此应用分配给其特定的项目级 URL:

project/urls.py

urlpatterns = [
    path('admin/',path('field_plot/',]

现在我需要按照预测加载 http://localhost:8000/field_plot/,但更改最后一个路径会中断 /get_lines/ 和我用于 AJAX 请求的其他 URL。我错过了什么?

解决方法

在您的 javascript 请求中使用 url 名称,https://docs.djangoproject.com/en/3.1/topics/http/urls/#examples

$.ajax(    
    {
        url: "{% url 'get_lines' %}",data_type: 'json',success: function(data) 
        {
            fillLinesMenu(JSON.parse(data))
            $("#form-lines option:eq(1)").attr("selected","selected");
            $("#form-lines").selectmenu("refresh")
        }
    }
)
,

您的网址已从 /get_lines/ 更改为 /field_plot/get_lines/。在 javascript 中与 Django 一起使用 url 的最佳方法是将模板中某处的 url 呈现 作为属性并使用 javascript 获取它。

模板中的某处(理想情况下,这将是一些按钮或将触发 ajax 请求的东西,为了举个例子,我将只使用带有 id 的 div):

<div id="my-url-div" data-url="{% url 'get_lines' %}"></div>

现在在您的 javascript 中:

url: $("#my-url-div").data('url'),

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?