表单操作中的 Django url 重定向

标签 django django-urls

我尝试了很多不同的方法,但是一旦我的表单保存,我就无法重定向我的操作。

我的贷款_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/

相关文章:

python - Django:值错误。 View 未返回 HTTPResponseObject

python - 如何将 django 1.4 的正则表达式转换为 django 2.0 样式路径?

python - Django 中的 URL 模式正则表达式

django - NoReverseMatch at/索引

python - 在 Django 中使用 HayStack + Solr 进行高级搜索?

python - Django 迁移中的“from __future__ import unicode_literals”

python - 使用 Python 魔法分解 Django URL

django - 在 javascript 文件中使用 Django url

django - 在 GeoDjango 的自定义 View 中渲染 GeoQuerySet 的空间数据

django - 字段标签脆形式 Django