我正在尝试使用 Django 构建一个预订系统。我有多个应用程序,渲染 url 模式很难理解,而且当您有多个应用程序时,我发现文档几乎没有帮助。
这是我的核心应用程序网址:
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('review.urls'), name='review_urls'),
path('accounts/', include('allauth.urls')),
path('bookings/', include('booking.urls'), name='booking_urls'),
]
预订应用程序网址:
urlpatterns = [
path('booking', views.customer_booking, name='booking'),
path('display_booking', views.display_booking, name='display_booking'),
path('edit_booking/<booking_id>',
views.edit_booking, name='edit_booking'),
]
我正在尝试渲染我的 edit_booking 视图:
def edit_booking(request, booking_id):
booking = get_object_or_404(Booking, id=booking_id)
if request.method == "POST":
form = BookingForm(request.POST, instance=booking)
if form.is_valid():
form.save()
return redirect('display_booking')
form = BookingForm(instance=booking)
context = {
'form': form
}
return render(request, 'edit_booking.html', context)
它被调用的地方:
<a href="/edit_booking/{{ booking.id }}"> <button>Edit</button></a>
我尝试将 bookings/ 添加到我的编辑按钮中,但这正在请求一个包含 bookings/bookings/edit_booking/7 的页面。没有它,它只是请求端点 edit_booking/7
您需要使用
url
模板标签
<a href="{% url 'edit_booking' booking.id %}"> <button>Edit</button></a>