python - Django 2.0.7 URL app_name 如何工作

标签 python django python-3.x url django-2.0

我正在开发一个使用 python 3.4.3 和 django 2.0.7 构建的项目,但我受困于 URL 文件逻辑。我仍然没有弄清楚这个错误:“ImportError: No module named 'fields'.

这是我所拥有的:

urls.py

from django.urls import include, path
from django.contrib import admin
from bridge.core import views as core_views

urlpatterns = [
    path('', core_views.home),
    path('backoffice/fields/', include('fields.urls', namespace='backoffice')),
    path('admin/', admin.site.urls),
]

fields/urls.py

from django.urls import path
from . import views

app_name = 'fields'

urlpatterns = [
    path('', views.list_fields, name='list_fields'),
]

“app_name”应该填写什么? “app_name”是如何工作的?

根据那里的文件,当我在浏览器中提交“/backoffice/fields/”时,django 应该调用“views.list_fields”,不应该吗?

如果需要任何其他信息来帮助我解决这个问题,请告诉我,我会尽快提供。

提前致谢

最佳答案

app_name 用于在其他地方引用您的url。您还将看到引用为 namespacing。如果您有两个具有相同 url name 的不同应用程序,它不会总是选择正确的应用程序。所以你给它们命名空间并这样调用它们:

{% url 'employee:name' %}
{% url 'customer:name' %}

您不仅可以在模板标签中使用名称,例如 reverse('employee:name') 等。

您遇到的问题是它不知道在哪里可以找到您的 urls 文件。如果您安装的应用是 bridge.fields,请尝试使用 include(bridge.fields.urls)

为了完全找到您的问题,我必须查看您的 project 文件夹结构,了解您的主要 urls 文件在哪里以及您的 fields.urls 是。请记住,fields.urls 实际上是指名为 urls.py 的文件,该文件位于名为 fields 的文件夹中。

关于python - Django 2.0.7 URL app_name 如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52751549/

相关文章:

python - VSCode 1.39.x 和 Python 3.7.x : "ImportError: attempted relative import with no known parent package" - when started without debugging (CTRL+F5))

python - 如何用python处理arff文件中的数据?

python - wagtail AbstractImage、ParentalManyToManyField 和 ClusterableModel

python - 如何更改序列化的JSON结构djangorest框架

python - 如何在使用 getduplicates() 时从已弃用的代码切换

python - 如何在 Python 中键入注释 JSON 数据?

python - 无法创建 cudnn 句柄 : CUBLAS_STATUS_ALLOC_FAILED

python - 从 for 循环返回 false,否则在 F# 中继续

Django 中间表用多对多字段代替外键?

python - 如何根据一周中不同日期的不同时间段修剪数据集?