2013-07-20 5 views
2

Je conf essaie de changer mon projet à utiliser des vues sur la base de la classe, et je suis en cours d'exécution dans une étrange erreur avec mon urlDjango: Problème avec url

conf

J'ai vue basé classé:

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

J'ai la dernière ligne commentée, car si je ne le fais pas, django se plaint qu'il n'y a pas de motifs dans mon conf URL.

Pour commencer, voici ma base 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)), 
) 

Il est clair qu'il ya des modèles là-dedans. Si je commente les URL d'administration, cela fonctionne. Donc, je suppose que le problème est là quelque part.

administration 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'), 

) 

Je ne vois pas le problème .. ces pages se chargent très bien sans cette déclaration inverse, il semble être l'introduction de la déclaration inverse qui casse tout, mais je Je ne peux pas, pour la vie de moi, déterminer quelle est la cause.

Répondre

0

Vous obtenez l'erreur car l'URL conf n'a pas encore été chargée lors de la définition de la classe.

Utilisez reverse_lazy au lieu de reverse.

from django.core.urlresolvers import reverse_lazy 

success_url = reverse_lazy('home_page') 
+0

est logique! Merci. – ptr