Python 如何在不同的Django视图中访问用户输入(POST)
我有一个名为“search”的视图,它将POST输入存储为“search\u id”,但“search\u id”仅在“search”视图的范围内可用。我希望能够访问视图“dispTable”中的变量“search\u id” 免责声明-如果我的问题的这一部分没有意义,请忽略:我知道我可以向dispTable添加一个附加参数,允许我在返回语句中将搜索id传递到dispTable中,但是如果我希望能够在多个视图中访问搜索id,该怎么办Python 如何在不同的Django视图中访问用户输入(POST),python,django,forms,input,Python,Django,Forms,Input,我有一个名为“search”的视图,它将POST输入存储为“search\u id”,但“search\u id”仅在“search”视图的范围内可用。我希望能够访问视图“dispTable”中的变量“search\u id” 免责声明-如果我的问题的这一部分没有意义,请忽略:我知道我可以向dispTable添加一个附加参数,允许我在返回语句中将搜索id传递到dispTable中,但是如果我希望能够在多个视图中访问搜索id,该怎么办 def search(request): if req
def search(request):
if request.method == 'POST' :
search_id = request.POST.get('textfield', None)
try:
return dispTable(request)
except Person.DoesNotExist:
return HttpResponse("no such user")
except Person.MultipleObjectsReturned :
#return dispTable(request, search_id)
return showResults(request)
else :
return render(request, 'People/search.html')
def dispTable(request) :
table = authTable(Person.objects.filter(MAIN_AUTHOR = 'search_id'))
RequestConfig(request).configure(table)
#return render(request, 'People/tableTemp.html', {'table':table})
return render(request, 'People/tableTemp.html', {"table" : Person.objects.filter(MAIN_AUTHOR = search_id)})
我还尝试使用表单,但我仍然不知道如何在其他视图(如dispTable)中访问输入变量
from django import forms
class SearchForm(forms.Form) :
search_id = forms.CharField(max_length=100)
def process(self) :
search_id = self.cleaned_data['search_id']
def search(request) :
if request.method == 'POST' :
form = SearchForm(request.POST)
if form.is_valid() :
form.process()
return dispTable(request)
else :
form = SearchForm()
return render (request, 'People/search.html')
这是我的html文件:
<form method="POST" action="send/">
{% csrf_token %}
<input type="text" name="textfield">
<button type="submit">Upload text</button>
</form>
{%csrf_令牌%}
上传文本
为什么不使用会话?我从未使用过会话。这是一种直观/简单的方式来存储用户输入以在多个视图中使用吗?因为您希望在视图之间交换信息,所以会话是您的解决方案:)