首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django:提交表单后,如何重定向到带有分页的ListView?

在Django中,要实现在提交表单后重定向到带有分页的ListView,可以按照以下步骤进行操作:

  1. 首先,在urls.py文件中定义一个URL模式,用于处理表单提交后的重定向。例如:
代码语言:txt
复制
from django.urls import path
from .views import MyListView, MyFormView

urlpatterns = [
    path('list/', MyListView.as_view(), name='my_list'),
    path('form/', MyFormView.as_view(), name='my_form'),
]
  1. 在views.py文件中,创建一个继承自ListView的视图类,用于显示带有分页的列表。例如:
代码语言:txt
复制
from django.views.generic import ListView
from .models import MyModel

class MyListView(ListView):
    model = MyModel
    paginate_by = 10
    template_name = 'my_list.html'
  1. 创建一个继承自FormView的视图类,用于处理表单提交。在该视图类中,重写form_valid()方法,以实现提交表单后的重定向。例如:
代码语言:txt
复制
from django.views.generic import FormView
from django.urls import reverse_lazy
from .forms import MyForm

class MyFormView(FormView):
    form_class = MyForm
    template_name = 'my_form.html'
    success_url = reverse_lazy('my_list')

    def form_valid(self, form):
        form.save()
        return super().form_valid(form)
  1. 在模板文件my_form.html中,编写表单的HTML代码。例如:
代码语言:txt
复制
<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">提交</button>
</form>
  1. 在模板文件my_list.html中,编写显示列表的HTML代码。例如:
代码语言:txt
复制
{% for object in object_list %}
  <p>{{ object }}</p>
{% endfor %}

<div class="pagination">
  <span class="step-links">
    {% if page_obj.has_previous %}
      <a href="?page=1">&laquo; 第一页</a>
      <a href="?page={{ page_obj.previous_page_number }}">上一页</a>
    {% endif %}

    <span class="current-page">{{ page_obj.number }}</span>

    {% if page_obj.has_next %}
      <a href="?page={{ page_obj.next_page_number }}">下一页</a>
      <a href="?page={{ page_obj.paginator.num_pages }}">最后一页 &raquo;</a>
    {% endif %}
  </span>
</div>

通过以上步骤,当用户在表单页面提交表单后,会自动重定向到带有分页的列表页面,并显示提交的数据。同时,分页功能也会在列表页面中正常工作。

推荐的腾讯云相关产品:腾讯云服务器(CVM)、腾讯云数据库MySQL(TencentDB for MySQL)、腾讯云对象存储(COS)等。您可以通过访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的详细信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django -- 如何优雅提交表单

前言 前面的内容我们基本上以 get请求作为例子,那 post请求Django如何处理呢?本章内容我们就来介绍Django如何发起和处理 post请求。...,提交这个表单会改变服务端数据,所以我们将 method="post" ,并且我们将action 设置为 {%url'demo_app:add'%}, 这表明了了我们会像 demo_app/views...Django 为此提出了一种较为简便方法Form ,Django表单有一下两个作用: 渲染表单模板 验证数据是否合法 下面我们来介绍下他使用。...,在 标签中,只有 {{form}}了,这就是 渲染表单模板 作用 我们运行程序可以同样效果,大家也可以试试当输入 name或 age不符合条件情况系统会是什么反应。...我们一般推荐不用表单渲染,因为样式不受自己控制,另外当我们 is_valid()返回true ,我们可以通过 cleaned_data属性中找到所有通过验证表单数据,这个大家可以自己探索下。

3.2K20

django 1.8 官方文档翻译: 1-2-4 编写你第一个Django应用,第4部分

这意味着,当有人选择了一个单选按钮并提交表单,将会发送 POST 数据是 choice=3。这是 HTML 表单基本概念。...使用 method=”post” ( 而不是 method=”get”) 是非常重要,因为这种提交表单方式会改变服务器端数据。...HttpResponseRedirect 对象需要一个参数:用户将被重定向 URL (请继续看下去在这情况下我们是如何构造 URL ) 。...想了解 HttpRequest 对象更多内容,请参阅 request 和 response 文档 。 当有人投票,vote() 视图会重定向投票结果页。...每次投票你将会看到结果页数据都有更新。 如果你没有选择投票选项就提交了,将会看到错误信息。

1.4K10

Django 1.10中文文档-第一个应用Part4-表单和通用视图

这意味着,当有人选择一个单选按钮并提交表单提交时,它将发送一个POST数据choice=#,其中# 为选择ChoiceID。...这是HTML表单基本概念; action表示你要发送目的url,method表示提交数据方式; forloop.counter表示for循环次数; 由于我们发送了一个POST请求...Django为你提供了一个简单方法来避免这个困扰,那就是在form表单内添加一条{% csrf_token %}标签,标签名不可更改,固定格式,位置任意,只要是在form表单内。...当对Question进行投票,vote()视图将请求重定向Question结果界面。...应该看到一个投票结果页面,并且在每次投票都会更新。 如果提交时没有选择任何Choice,应该会看到错误信息。 注: views()视图代码确实有一个小问题。

2.3K40

Django内置通用类视图CBV及示例

显示表单视图,验证错误时,重新显示表单并显示错误信息;成功时,重定向一个新URL....属性: form_class:要实例化Form类. success_url:表单成功处理重定向URL. tamplate_name:字符串表示模板名称....方法: get_success_url():决定在表单成功验证重定向URL,默认返回success_url. form_valid(form):在表单验证成功调用该方法(注意并没有对数据进行操作...,并重定向get_success_url(),可以覆盖该方法在以上行为之间添加额外动作.该方法必须返回一个HttpResponse. form_invalid(form):如果表单验证失败,则使用已填充表单数据和错误信息重新渲染上下文...delete()方法,然后重定向success_url.

3.2K10

Django内置通用类视图及实例

显示表单视图,验证错误时,重新显示表单并显示错误信息;成功时,重定向一个新URL....属性: form_class:要实例化Form类. success_url:表单成功处理重定向URL. tamplate_name:字符串表示模板名称....方法: get_success_url():决定在表单成功验证重定向URL,默认返回success_url. form_valid(form):在表单验证成功调用该方法(注意并没有对数据进行操作...,并重定向get_success_url(),可以覆盖该方法在以上行为之间添加额外动作.该方法必须返回一个HttpResponse. form_invalid(form):如果表单验证失败,则使用已填充表单数据和错误信息重新渲染上下文...delete()方法,然后重定向success_url.

2.9K40

django 入门:通用视图类重构视图

:视图及模版》 《django入门:Admin管理系统及表单》 终于到最后一部分了,这部分我们将通过 django 自带通用视图类替换之前写视图函数,对视图进行重构 2 利用 django 通用视图类创建类视图...P[0-9]+)/$', views.PostDetailView.as_view(), name='post'), ] 修改完界面应该和之前效果是一样 ? 列表界面 ?...详情界面 有时候如果我们数据过多,同一页加载全部数据,用户体验肯定不好,我们通过通用视图类来创建分页,这边为了方便显示,我们会设置每页加载一篇文章 3 通过 ListView 创建分页 1.指定...ListView paginate_by 属性来设置分页 class PostListView(ListView): model = Post template_name = 'blog...优化分页列表 最后我们列下 Paginator 常用属性结束 django 入门教程,接下来会有 DRF 入门教程,django 算是其基础吧,DRF 实现了前后端分离,刚好适合我这种 Android

86720

Django】 开发:补充知识

count:需要分类数据对象总数 :分页页面总数 :从1开始range对象, 用于记录当前面码数 每页数据个数 Paginator方法 page(number) 参数...文件上传 文件上传必须为 POST 提交方式 表单 中文件上传时必须有带有 时才会包含文件内容数据。 表单中用 标签上传文件 名字 xxx 对应 对应内存缓冲文件流对象。...中用户认证 (使用Django认证系统) Django带有一个用户认证系统。...执行该命令Django 将项目重所有静态文件 复制 中 ,包括 Django 内建静态文件【如 admin 后台样式】 Nginx 配置中添加新配置 # file : /etc/nginx.../sites-enabled/default # 新添加location /static 路由配置,重定向指定 第一步创建路径即可 server { ...

6.4K30

带你认识 flask 分页

请注意,在处理表单数据,我通过发送重定向主页来结束请求。我可以轻松地跳过重定向,并允许函数继续向下进入模板渲染部分,因为这已经是主页视图函数了。 那么,为什么重定向呢?...通过重定向来响应Web表单提交产生POST请求是一种标准做法。这有助于缓解在Web浏览器中执行刷新命令烦恼。当你点击刷新键时,所有的网页浏览器都会重新发出最后请求。...如果带有表单提交POST请求返回一个常规响应,那么刷新将重新提交表单。因为这不是预期行为,所以浏览器会要求用户确认重复提交,但是大多数用户却很难理解浏览器询问内容。...这个简单技巧叫做Post/Redirect/Get模式。它避免了用户在提交网页表单无意中刷新页面时插入重复动态。 02 展示用户动态 应用看起来更完善了,但是在主页显示所有用户动态迟早会出问题。...在最终应用中,每页显示数据将会大于三,但是对于测试而言,使用小数字很方便。 接下来,我需要决定如何将页码并入应用URL中。

2K20

Django源码学习-8-ListView&DetailView通用视图

Django网络应用开发5项基础核心技术包括模型(Model)设计,URL 设计与配置,View(视图)编写,Template(模板)设计和Form(表单)使用。...Django通用视图可以减少开发单调性,它抽象出一些在视图开发中常用代码和模式,这样就可以在无需编写大量代码情况下,快速编写出常用视图函数。 ?..., ) from django.views.generic.list import ListView __all__ = [ 'View', 'TemplateView', 'RedirectView...pass ① ListView:显示对象列表 用于展示一个 Model 里面的所有对象,也可以是其子集 (queryset) ,支持分页。...from django.views.generic import ListView from books.models import Publisher class PublisherList(ListView

1.4K10

django 1.8 官方文档翻译:13-1-2 使用Django认证系统

限制访问给登陆用户 原始方法 限制页面访问简单、原始方法是检查request.user.is_authenticated()并重定向一个登陆页面: from django.conf import...redirect_field_name: GET字段名称,包含登陆重定向URL。默认为next。 authentication_form: 用于认证可调用对象(通常只是一个表单类)。...如果通过POST调用并带有用户提交凭证,它会尝试登入该用户。如果登入成功,该视图重定向next中指定URL。...post_change_redirect: 密码修改成功重定向URL。 password_change_form: 一个自定义“修改密码”表单,必须接受user 关键词参数。...如果你使用了自定义用户模型,可能需要为验证系统定义你自己表单。更多信息请见 使用带有自定义用户模型内建验证表单文档。

4.6K20

Django学习笔记 1.4 表单和通用视图

文章目录 前言 1 编写一个简单表单 1.1 模版中新增表单 1.2 视图中新增交互处理 1.3 重定向 results 页面增加显示 1.4 完善 results.html 页面代码 2 通用视图...2.1 改良 URLconf 2.2 改良视图 小结 前言 这一节我们将继续编写投票应用,专注于简单表单处理并且精简我们代码。...1 编写一个简单表单 1.1 模版中新增表单 更新一下在上一个教程中编写投票详细页面的模板 (“polls/detail.html”) ,增加一个 HTML 元素: {{ question.question_text...1.2 视图中新增交互处理 polls/views.py 中将投票选择存入数据库,同时做URL重定向处理。...这些视图反映基本 Web 开发中一个常见情况:根据 URL 中参数从数据库中获取数据、载入模板文件然后返回渲染模板。

77610

关于“Python”核心知识点整理大全55

你制定了简要项目规 范,在虚拟环境中安装了Django,创建了一个项目,并核实该项目已正确地创建。你学习了如何 创建应用程序,以及如何定义表示应用程序数据模型。...你学习了数据库,以及在你修改模型Django可为你迁移数据库提供什么样帮助。你学习了如何创建可访问管理网站超级用户,并 使用管理网站输入了一些初始数据。...视图函数new_topic() 函数new_topic()需要处理两种情形:刚进入new_topic网页(在这种情况下,它应显示一个 空表单);对提交表单数据进行处理,并将用户重定向网页topics...form} return render(request, 'learning_logs/new_topic.html', context) 我们导入了HttpResponseRedirect类,用户提交主题我们将使用这个类将用户重定向网...我们使用reverse()获取页面topicsURL,并将其传递给HttpResponseRedirect()(见6),后者将用户浏览器重定向页 面topics。

12310

Django 博客单元测试:测试评论应用

提交内容合法,则创建评论,用户被重定向回被评论文章详情页,页面中包含评论成功消息提醒。...请修改表单错误重新提交。')...test_valid_comment_data 中,我们构造合法评论内容并提交,预期结果是评论提交成功重定向被评论文章详情页,所以使用了 assertRedirects 进行断言。...由于评论成功需要重定向,因此传入 follow=True,表示跟踪重定向,因此返回响应,是最终重定向之后返回响应(即被评论文章详情页),如果传入 False,则不会追踪重定向,返回响应就是一个响应码为...基本套路就是代替 django 视图函数自动渲染模板内容过程,手工构造一个包含待测试模板标签模板,然后手工渲染其内容,断言渲染内容是否包含预期内容。

52130

python 终极篇 --- django

POST 请求可以带有 POST 字典 —— 如果通过 HTTP POST 方法发送一个表单,但是表单中没有任何数据,QueryDict 对象依然会被创建。...注意,FILES 只有在请求方法为POST 且提交 带有enctype="multipart/form-data" 情况下才会 包含数据。...参数可以是: 一个模型:将调用模型get_absolute_url() 函数 一个视图,可以带有参数:将使用urlresolvers.reverse 来反向解析名称 一个绝对或相对URL,将原封不动作为重定向位置...return redirect('some-view-name', foo='bar') 传递要重定向一个具体网址 def my_view(request): ......A页面临时重定向B页面,那搜索引擎收录就是A页面。 A页面永久重定向B页面,那搜索引擎收录就是B页面。 redirect 4.

1.6K10
领券