Django URL 配置错误

Posted

技术标签:

【中文标题】Django URL 配置错误【英文标题】:Django URL conf error 【发布时间】:2017-04-14 12:50:15 【问题描述】:

当我尝试使用 reverse 或 reverse_lazy 时,我收到以下消息:

包含的 URLconf 'ph.urls' 似乎没有任何模式 它。如果您在文件中看到有效模式,那么问题可能是 循环导入引起的

当我使用 url(不使用反向或反向惰性)时,没有问题。我尝试了不同的 url 组合得到相同的结果

我做错了什么?

ph 是项目。在项目中,我包含了应用程序的 url:

from django.conf import settings
from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [

    url(r'^account/', include('accounts.urls', namespace='accounts')),
    url(r'^companies/', include('companies.urls', namespace='companies')),
    url(r'^products/', include('products.urls', namespace='products')),
    url(r'^admin/', admin.site.urls),

]

# debug toolbar
if settings.DEBUG:
    import debug_toolbar
    urlpatterns += [
        url(r'^__debug__/', include(debug_toolbar.urls)),
    ]

涉及的应用:

1) 帐户:

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

urlpatterns = [
     url(r'$', AccountDetailView.as_view(), name='dashboard'),

2) 产品:

class ProductCreateView(AccountMixin, CreateView):
    model = Product
    form_class = ProductModelForm
    url = reverse_lazy('accounts:dashboard')
    url2 = reverse_lazy('products:list')
    #print(url)
    template_name = 'accounts/product_form.html'
    #success_url = reverse_lazy('accounts:product_detail')

【问题讨论】:

请显示完整的 ph urls 文件。 @DanielRoseman 已更新 使用success_url = reverse_lazy('accounts:product_detail') 应该没问题。但是,你不应该打印结果,或者在定义基于类的视图时使用reverse,否则 Django 会在 URL 配置加载之前尝试反转 URL。 您对 print() 的看法是正确的。 请显示完整的回溯。 【参考方案1】:

我解决了问题;

我使用 get_success_url() 在里面调用 reverse()。

reverse_lazy 不起作用,因为必须为 url 传递 kwargs,我忘记了。

def get_success_url(self): return reverse('accounts:product_detail', kwargs='pk': self.object.pk)

【讨论】:

以上是关于Django URL 配置错误的主要内容,如果未能解决你的问题,请参考以下文章

Django:用户配置文件的动态 URL

Django 1.8_视图和URL配置

django自定义错误处理

Django-404错误处理

Django中favicon.ico文件的配置

Django