带命名空间的django反转
django reverse with namespace
我收到这个错误:
The included urlconf 'unsitiodigital.urls' does not appear to have any patterns in it.
回溯指向这一行
class Contacto(FormView):
template_name = "contacto.html"
form_class = FormContacto
success_url = reverse("main:mensaje_enviado") -->This Line
def form_valid(self, form):
form.send_email()
return super(Contacto, self).form_valid(form)
有有效的模式,它可以在没有 reverse
行的情况下工作。
urls.py - 一般
urlpatterns = [
url(r'^', include('main.urls', namespace="main")),
url(r'^admin/', include(admin.site.urls)),
]
urls.py - 主要
from django.conf.urls import url
from main import views
urlpatterns = [
url(r'^$', views.Inicio.as_view(), name='inicio'),
url(r'^quienes_somos/$', views.QuienesSomos.as_view(), name='quienes_somos'),
url(r'^opciones/$', views.Opciones.as_view(), name='opciones'),
url(r'^contacto/$', views.Contacto.as_view(), name='contacto'),
-> url(r'^mensaje_enviado/$', views.MensajeEnviado.as_view(), name='mensaje_enviado')
]
那么,“哪个是 reverse 的正确用户?”。非常感谢。
包含路径一定是错误的
url(r'^', include('main.urls', namespace="main")), # the 'main.urls' path must be wrong
您可以通过一些方式包含其他网址。尝试从 main.url 模块导入模式而不是
from main.urls import urlpatterns as main_urls
url(r'^', include(main_urls, namespace="main"),
您还必须在 success_url 中使用 reverse_lazy。
from django.core.urlresolvers import reverse_lazy
class Contacto(FormView):
template_name = "contacto.html"
form_class = FormContacto
success_url = reverse_lazy("main:mensaje_enviado")
It is useful for when you need to use a URL reversal before your project’s URLConf is loaded.
我收到这个错误:
The included urlconf 'unsitiodigital.urls' does not appear to have any patterns in it.
回溯指向这一行
class Contacto(FormView):
template_name = "contacto.html"
form_class = FormContacto
success_url = reverse("main:mensaje_enviado") -->This Line
def form_valid(self, form):
form.send_email()
return super(Contacto, self).form_valid(form)
有有效的模式,它可以在没有 reverse
行的情况下工作。
urls.py - 一般
urlpatterns = [
url(r'^', include('main.urls', namespace="main")),
url(r'^admin/', include(admin.site.urls)),
]
urls.py - 主要
from django.conf.urls import url
from main import views
urlpatterns = [
url(r'^$', views.Inicio.as_view(), name='inicio'),
url(r'^quienes_somos/$', views.QuienesSomos.as_view(), name='quienes_somos'),
url(r'^opciones/$', views.Opciones.as_view(), name='opciones'),
url(r'^contacto/$', views.Contacto.as_view(), name='contacto'),
-> url(r'^mensaje_enviado/$', views.MensajeEnviado.as_view(), name='mensaje_enviado')
]
那么,“哪个是 reverse 的正确用户?”。非常感谢。
包含路径一定是错误的
url(r'^', include('main.urls', namespace="main")), # the 'main.urls' path must be wrong
您可以通过一些方式包含其他网址。尝试从 main.url 模块导入模式而不是
from main.urls import urlpatterns as main_urls
url(r'^', include(main_urls, namespace="main"),
您还必须在 success_url 中使用 reverse_lazy。
from django.core.urlresolvers import reverse_lazy
class Contacto(FormView):
template_name = "contacto.html"
form_class = FormContacto
success_url = reverse_lazy("main:mensaje_enviado")
It is useful for when you need to use a URL reversal before your project’s URLConf is loaded.