【问题标题】:View to pass data provided in URL not Mapping查看以传递 URL 中提供的数据而不是映射
【发布时间】:2015-07-14 21:44:51
【问题描述】:

我有一个如下所示的 Django 项目结构:

siteDirectory
    -manage.py
    -mySite
        -__init.py
        -settings.py
        -urls.py (1)
        -public
            -__init__.py
            -urls.py (2)
            -app1
                -models.py
                -views.py
                -urls.py (3)
            -app2
            -app3
            -urls.py

(为简洁起见,省略了一些文件)。

我已成功运行我的网站,并且我的模型按计划工作。然后我去设置一个 URL 方案,我可以在其中给出这样的 URL:localhost/app1/5 其中5 是模型对象的 ID。这类似于 Django 教程 (https://docs.djangoproject.com/en/1.8/intro/tutorial03/) 的“编写更多视图”部分。但是,当我实现这个时,我得到一个 404 错误,并且我的 URL 模式没有在我的文件中定义。这些是我拥有的 URL 文件(它们与结构中的相应文件编号匹配)

urls.py (1)

from public import urls as public_urls
from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),

    # Public-facing site
    url(r'', include(public_urls))
]

urls.py (2)

from app1 import urls as app_one_urls
from app2 import views as app_two_views
from app3 import views as app_three_views

# URLs
urlpatterns = [
    url(r'^app1$', include(app_one_urls)),
    url(r'^app2$', app_two_views.main)
    url(r'^app3$', app_three_views.main),
]

urls.py (3)

from django.conf.urls import url
from . import views


urlpatterns = [
    url(r'^$', views.main, name='index'),
    url(r'^(?P<someObject_id>[0-9]+)/$', views.someObject, name='someObject'),
]

我可以成功访问我的所有应用程序,但只有someObject GET 不起作用。是什么导致了这个 404 错误?

【问题讨论】:

    标签: python django url django-views


    【解决方案1】:

    您已在第二个文件中的所有 url 上终止“$”。这意味着字符串中的任何内容都不会匹配。删除那些。

    【讨论】:

      【解决方案2】:

      从您的urls.py(2) 中删除$。即

      url(r'^app1/', include(app_one_urls)),
      

      【讨论】:

        猜你喜欢
        • 2012-12-10
        • 1970-01-01
        • 1970-01-01
        • 2020-12-25
        • 1970-01-01
        • 2017-07-30
        • 1970-01-01
        • 2014-10-05
        • 1970-01-01
        相关资源
        最近更新 更多