django - 表单操作中的 Django url 重定向
问题描述
我尝试了很多不同的东西,但是一旦我的表单保存,我就无法让我的动作重定向。
我的loans_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
is aListView
和LoanCreateView
is a CreateView
,您应该发布到LoanCreateView
,因为这是将解析表单并做出正确操作的视图,因此您应该编写:
<form action="{% url 'create' %}" method="post">
...
</form>
在 中,您可以通过指定属性LoanCreateView
来指定在处理成功的情况下要重定向到哪个视图。success_url
如果您想指定视图的名称,那么通常reverse_lazy
[Django-doc]可以帮助您:
from django.urls import reverse_lazy
from django.views.generic.edit import CreateView
class LoanCreateView(CreateView):
# ...
success_url = reverse_lazy('loans')
推荐阅读
- python - 模拟测试 api 的 post 方法
- c++ - MinGW cmake:“pthread_mutex_init”的多个定义
- javascript - 从反应功能组件返回一个变量
- excel - Excel:签署 Excel 宏以防止弹出“启用宏”
- android - 如何使用`Laravel Passport`获取`Android`应用程序的客户端ID和客户端密码
- apache-kafka - 使用 jmx_exporter 向 jvm 相关指标添加自定义标签
- serverless-framework - 无法 JSON.parse 无服务器 event.body
- c - Perf 不注释 Rust 调用的 C 代码
- c - fgets 不会停止读取用户输入
- python - 前天查询pandas怎么办