在Django中,要实现在提交表单后重定向到带有分页的ListView,可以按照以下步骤进行操作:
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'),
]
from django.views.generic import ListView
from .models import MyModel
class MyListView(ListView):
model = MyModel
paginate_by = 10
template_name = 'my_list.html'
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)
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">提交</button>
</form>
{% 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">« 第一页</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 }}">最后一页 »</a>
{% endif %}
</span>
</div>
通过以上步骤,当用户在表单页面提交表单后,会自动重定向到带有分页的列表页面,并显示提交的数据。同时,分页功能也会在列表页面中正常工作。
推荐的腾讯云相关产品:腾讯云服务器(CVM)、腾讯云数据库MySQL(TencentDB for MySQL)、腾讯云对象存储(COS)等。您可以通过访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的详细信息。
领取专属 10元无门槛券
手把手带您无忧上云