如何使用多个应用程序在 Django 中呈现 URL 模式

how to render URL patterns in Django with multiple apps

提问人:Leonie 提问时间:10/8/2023 更新时间:10/8/2023 访问量:26

问:

我正在尝试使用 Django 构建一个预订系统。我有多个应用程序,渲染 url 模式很难理解,当您有多个应用程序时,我发现文档几乎没有帮助。

这是我的核心应用程序 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'),

]

预订应用程序 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

django django-urls

评论


答:

1赞 logan_9997 10/8/2023 #1

您需要使用模板标签url

<a href="{% url 'edit_booking' booking.id %}"> <button>Edit</button></a>