我已经坚持了一段时间,似乎无法解决该错误。我不在视图中的任何地方使用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">
我尝试了所有不同的更改和名称空间,例如尝试仅使用
charge
,urls.py等中的不同名称空间。渲染
book/booking/
时,出现以下错误:找不到“费用”的相反内容。 “费用”不是有效的查看功能
或模式名称。
最佳答案
如果要以这种方式使用URL标记,则在urls.py中需要一个namespace
。
url(r"^book/", include("bookings.urls", namespace="bookings")),
然后,您可以在模板中包含
{% url 'bookings:charge' %}
。