【问题标题】:Django: Issue with url confDjango:url conf问题
【发布时间】:2013-07-19 18:18:06
【问题描述】:

我正在尝试更改我的项目以使用基于类的视图,但我的 url conf 遇到了一个奇怪的错误

我有一个基于分类的视图:

class GroupOrTeamCreate(AjaxableResponseMixin, CreateView):
    model = GroupOrTeam
    fields = ['name', 'description']
    #success_url = reverse('home_page')  # redirect to self

我已将最后一行注释掉,因为如果我不这样做,django 会抱怨我的 url conf 中没有模式。

首先,这是我的基本 urls.py

urlpatterns = patterns('',
    url(r'^$', TemplateView.as_view(template_name='core/home.html'), name='home_page'),
    url(r'^administration/', include('administration.urls', app_name='administration')),
    url(r'^reports/', include('reports.urls', app_name='reports')),
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

显然那里有模式。如果我注释掉管理网址,它就可以工作。所以我认为问题出在某个地方。

管理 urls.py

from django.conf.urls import patterns, url
from .views import ActiveTabTemplateView, GroupOrTeamCreate, GroupOrTeamUpdate


urlpatterns = patterns('',

    # Add page
    url(r'^add/$', ActiveTabTemplateView.as_view(template_name='administration/add.html'), name='add_page'),
    url(r'^add/(?P<active_tab>\w+)/$', ActiveTabTemplateView.as_view(template_name='administration/add.html'),
    name='add_page'),

    # Seach page
    url(r'^search/$', ActiveTabTemplateView.as_view(template_name='administration/search.html'), name='search_page'),
    url(r'^search/(?P<active_tab>\w+)/$', ActiveTabTemplateView.as_view(template_name='administration/search.html'),
    name='search_page'),

    #--------------------------------------------------------------------------
    # Forms
    #--------------------------------------------------------------------------

    # Groups and teams
    url(r'^group-or-team-form/$', GroupOrTeamCreate.as_view(template_name='administration/forms/groups_form.html'),
        name='group_or_team_form'),
    url(r'^group-or-team-form/(?P<pk>\d+)/$',
        GroupOrTeamUpdate.as_view(template_name='administration/forms/groups_form.html'),
        name='group_or_team_form'),

)

我没有看到问题.. 这些页面在没有反向语句的情况下加载得很好,似乎是反向语句的引入破坏了一切,但我终其一生都无法弄清楚原因是。

【问题讨论】:

    标签: django urlconf


    【解决方案1】:

    您收到错误是因为在定义类时尚未加载 URL conf。

    使用reverse_lazy 而不是reverse

    from django.core.urlresolvers import reverse_lazy
    
    success_url = reverse_lazy('home_page')
    

    【讨论】:

      猜你喜欢
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-29
      • 2022-10-14
      • 2015-10-13
      • 2018-05-11
      • 2021-03-05
      相关资源
      最近更新 更多