在Django 3(Python)中重定向到另一个视图时如何传递参数
我想在django中将变量传递给我的视图,但我得到了错误。。。代码只是试图在重定向时将文本传递到视图中。基本上,用户将填写一个表单,该表单的内容将显示在另一个页面上。但是,如果运行以下代码,我会遇到此错误: django.url.exceptions.NoReverseMatch:与“view2”相反 找不到参数“('hi',)”。已尝试1个模式:['view2$'] views.py在Django 3(Python)中重定向到另一个视图时如何传递参数,python,django,redirect,django-views,Python,Django,Redirect,Django Views,我想在django中将变量传递给我的视图,但我得到了错误。。。代码只是试图在重定向时将文本传递到视图中。基本上,用户将填写一个表单,该表单的内容将显示在另一个页面上。但是,如果运行以下代码,我会遇到此错误: django.url.exceptions.NoReverseMatch:与“view2”相反 找不到参数“('hi',)”。已尝试1个模式:['view2$'] views.py from django.shortcuts import render, redirect def inde
from django.shortcuts import render, redirect
def index(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
submit_form(request)
else:
form = MyForm()
return render(request, 'index.html', {'form':form})
def view2(request, text):
return render(request, 'page2.html', {'my_text':text})
def submit_form(request):
# Just using 'hi' for simplicity
return redirect(view2, 'hi')
页面2.html
{% extends "base.html" %}
{% block body_block %}
{{ my_text }}
{% endblock %}
url.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('view2', views.view2, name='view2'),
]
我怀疑这个错误是因为我在views.py中做了一些错误的事情,但是我还没有找到任何可以工作的东西。。。
我也在submit_form函数中尝试了这两行,但得到了相同的错误
return redirect(view2, pn='hi')
return HttpResponseRedirect(reverse('view2', args=('hi', )))
不能用数据重定向。重定向只是向客户端发送一个响应,表明其请求的资源已更改了位置,以便客户端随后向新位置发出新请求。每个请求都应该是独立的,所需的任何数据都应该从请求本身中找到(并且可能从数据库等不同的地方找到)。因此,也许您可以为我指出正确的方向,说明我的最终目标是什么。。。我的django应用程序接收一个.csv文档并解析它。根据内容,可能需要创建模型的新实例。如果是这种情况,我想重定向到另一个页面,该页面有一个表单,表单中预先填写了上传的数据,其余页面为空,用户可以填写。所以,“view2”实际上是一个模型表单,我试图通过参数将一些现有信息传递给它。在Django有没有办法做到这一点?