反向{%url%}:反向'''未找到。''不是有效的视图函数或模式名称

时间:2018-04-07 16:25:04

标签: python django

我已经坚持了一段时间,似乎无法修复错误。我不在视图中的任何位置使用reverse()

urls.py

urlpatterns = [
    url(r"^book/", include("bookings.urls")),
]

bookings.urls.py

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

app_name = 'bookings'

urlpatterns = [
    url(r'^charge/$', views.charge, name='charge'),
    url(r'^booking/$', views.booking, name='booking'),
]

views.py

def booking(request):
     # some code
     render(request, 'bookings/template.html', {'listing': listing,})
def charge(request):
    # some code

template.html

<form action="{% url 'bookings:charge' %}" method="post">

我尝试了所有不同的更改和命名空间,例如试图在urls.py等中使用charge,不同的命名空间。

当我渲染book/booking/时,我收到以下错误:

  

未找到“充电”的反向。 'charge'不是有效的视图功能   或模式名称。

1 个答案:

答案 0 :(得分:2)

如果您想以这种方式使用网址标记,则需要在urls.py中使用namespace

url(r"^book/", include("bookings.urls", namespace="bookings")),

然后您可以在模板中使用{% url 'bookings:charge' %}