我有一个名为“search”的视图,它将POST输入存储为“search_id”,但“search_id”仅在视图“search”的范围内可用。我希望能够在我的视图“dispTable”中访问变量“search_id”。
免责声明 - 如果我的问题的这部分没有意义,请忽略:我理解我可以向dispTable添加一个额外的参数,这将允许我在return语句中将search_id传递给dispTable但是如果我想成为能够在多个视图中访问search_id。
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>