我尝试了很多不同的方法,但是一旦我的表单保存,我就无法重定向我的操作。
我的贷款_form.html:
<form action="{% url loans %}" method="post">
{% csrf_token %}
{% for field in form %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label_tag }}: {{ field }}
</div>
{% endfor %}
<p><input type="submit" value="Submit loan request" /></p>
</form>
还有我的 urls.py
from django.urls import path
from .views import LoanListView, LoanCreateView
urlpatterns =[
path('', LoanListView.as_view(), name='loans'),
path('create', LoanCreateView.as_view(), name='create')
]
最佳答案
鉴于 LoanListView
是一个 ListView
并且 LoanCreateView
是一个 CreateView
,您应该发布到 LoanCreateView
,因为这是将解析表单并做出正确操作的 View ,所以您应该编写:
<form action="{% url <b>'create'</b> %}" method="post">
...
</form>
在 LoanCreateView
中,您可以通过指定 success_url
属性来指定在处理成功时要重定向到的 View 。如果要指定 View 的名称,则通常为 reverse_lazy
[Django-doc] ,可以帮助您:
from django.urls import <b>reverse_lazy</b>
from django.views.generic.edit import CreateView
class LoanCreateView(CreateView):
# ...
success_url = <b>reverse_lazy('loans')</b>
关于表单操作中的 Django url 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56202065/