添加新订单后,我将无法进入order_list页面。
[尝试同时使用reverse和reverse_lazy方法也只是将页面adres值直接设置为success_url = success_url ='orders / order_list'或成功URL ='order_list',但它总是返回Http 405错误。
views.py
django.shortcuts import render
from django.urls import reverse_lazy
from django.views import View
from django.views.generic import ListView, DetailView, CreateView
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib.auth.mixins import PermissionRequiredMixin, LoginRequiredMixin
from .models import Order
from .forms import CreateOrder
from django.contrib.auth.decorators import login_required
# Create your views here.
class OrderCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView):
login_url = '/login_required'
permission_required = 'orders.add-order'
model = Order
success_url = reverse_lazy('orders:order_list')
fields = ['airport', 'direction', 'adress', 'client', 'telephone', 'flight_number', 'plane', 'pick_up', 'gate', 'driver']
urls.py
from django.contrib import admin
from django.urls import path
from django.contrib.auth import views as auth_views
from orders.views import OrderCreateView, OrderListView, AboutView, LoginRequiredView
urlpatterns = [
path('admin/', admin.site.urls),
path('add_order/', OrderCreateView.as_view(template_name="orders/add_order.html"), name="add_order"),
path('order_list/', OrderListView.as_view(), name="order_list"),
path('login/', auth_views.LoginView.as_view(template_name="pages/login.html"), name="login"),
path('logout/', auth_views.LogoutView.as_view(template_name="pages/logout.html"), name="logout"),
path('about/', AboutView.as_view(), name="about"),
path('login_required/', LoginRequiredView.as_view(), name='login_required')
]
add_order.html
{% extends 'base.html' %}
{% load static %}
{% load crispy_forms_tags %}
{% block content %}
<div class="container" style="width: 40%; height: 80%;">
<div class="page header">
<h1>Add new order</h1>
</div>
<form action="/order_list/" method="post">
{% csrf_token %}
{{ form|crispy }}
<button type="submit" class="btn btn-success">Save order</button>
</form>
</div>
{% endblock %}
任何想法我在做什么错?
尝试更改:
success_url = reverse_lazy('orders:order_list')
收件人:
success_url = reverse_lazy('order_list')
并更改:
<form action="/order_list/" method="post">
收件人:
<form action="/add_order/" method="post">
注意:不建议使用硬编码URL。