Django 2.0.7 URL app_name 如何工作
Django 2.0.7 how URL app_name works
我正在开发一个使用 python 3.4.3 和 django 2.0.7 构建的项目,但我受困于 URL 文件逻辑。我仍然没有弄清楚这个错误:“ImportError:没有名为 '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
用于在其他地方引用您的 urls
。您还将看到引用为 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
实际上是指位于名为 fields
的文件夹中的名为 urls.py
的文件。
我正在开发一个使用 python 3.4.3 和 django 2.0.7 构建的项目,但我受困于 URL 文件逻辑。我仍然没有弄清楚这个错误:“ImportError:没有名为 '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
用于在其他地方引用您的 urls
。您还将看到引用为 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
实际上是指位于名为 fields
的文件夹中的名为 urls.py
的文件。