Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不同的Django视图中访问用户输入(POST)_Python_Django_Forms_Input - Fatal编程技术网

Python 如何在不同的Django视图中访问用户输入(POST)

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

我有一个名为“search”的视图,它将POST输入存储为“search\u id”,但“search\u id”仅在“search”视图的范围内可用。我希望能够访问视图“dispTable”中的变量“search\u id”

免责声明-如果我的问题的这一部分没有意义,请忽略:我知道我可以向dispTable添加一个附加参数,允许我在返回语句中将搜索id传递到dispTable中,但是如果我希望能够在多个视图中访问搜索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>

{%csrf_令牌%}
上传文本

为什么不使用会话?我从未使用过会话。这是一种直观/简单的方式来存储用户输入以在多个视图中使用吗?因为您希望在视图之间交换信息,所以会话是您的解决方案:)