Python Django:Access request.GET以表单形式传递queryset作为选项

Python Django:Access request.GET以表单形式传递queryset作为选项,python,django,forms,choicefield,Python,Django,Forms,Choicefield,在Django中,我如何访问表单中的请求? 我需要这个来获得数据元组,以便将选项传递到表单中。 下面init方法不起作用:NameError:name'request'未定义,带self或不带self:self.request.GET.GET('project')或request.GET.GET('project') 表单需要的不是请求,而是项目。最好在视图中处理请求,并将所需参数传递给表单: 表格: 视图: 表单需要的不是请求,而是项目。最好在视图中处理请求,并将所需参数传递给表单: 表格:

在Django中,我如何访问表单中的请求? 我需要这个来获得数据元组,以便将选项传递到表单中。 下面init方法不起作用:NameError:name'request'未定义,带self或不带self:self.request.GET.GET('project')request.GET.GET('project')


表单需要的不是请求,而是项目。最好在视图中处理请求,并将所需参数传递给表单:

表格:

视图:


表单需要的不是请求,而是项目。最好在视图中处理请求,并将所需参数传递给表单:

表格:

视图:


您尝试使用的所有代码都没有在方法中使用,这意味着它不属于
PostFilterForm
的任何实例,因此不了解
self
,更不用说它的字段了

您应该在函数中包含这些函数,尽管应该包含哪些函数尚不清楚

def my_function(self):
    monitoring_words_to_show = Nlpmonitorword.objects.filter(monitoringwords__name = self.request.GET.get('project')) 
    words_list = []
    for word in monitoring_words_to_show:
        words_list.append((word.monitor_word, word.monitor_word))    
    words_list = tuple(words_list)   # trying to get here tuple to pass in choises (('vk', 'vk'), ('fb', 'fb'), ('vkfb', 'vkfb'))

您尝试使用的所有代码都没有在方法中使用,这意味着它不属于
PostFilterForm
的任何实例,因此不了解
self
,更不用说它的字段了

您应该在函数中包含这些函数,尽管应该包含哪些函数尚不清楚

def my_function(self):
    monitoring_words_to_show = Nlpmonitorword.objects.filter(monitoringwords__name = self.request.GET.get('project')) 
    words_list = []
    for word in monitoring_words_to_show:
        words_list.append((word.monitor_word, word.monitor_word))    
    words_list = tuple(words_list)   # trying to get here tuple to pass in choises (('vk', 'vk'), ('fb', 'fb'), ('vkfb', 'vkfb'))

“可能重复”指的是您正在问的实际问题,但此处显示的一组代码不在方法/函数中,这可能是真正的问题。@Sayse我看到了答案,并在问题中指出,由于某些原因,它不起作用。“可能重复”指的是您正在问的实际问题,但是这里显示的一堆代码不在一个方法/函数中,这可能是真正的问题。@Sayse我看到了这个答案,并在问题中指出它由于某些原因不起作用这似乎是合理的,你能指出init string后面的内容吗,我试过def uu init u(self,project,*args,**kwargs):self.project=kwargs.pop(“项目”)super(PostfilterForm,self)。\uuu init\uuuu(项目,*args,**kwargs)但是得到了一个错误NameError:name'project'没有定义将参数作为kwarg传递,然后弹出它是另一种方式,但是由于表单总是需要项目,并且它不是可选参数,所以我更喜欢将其用作强制参数。只需删除弹出行并使用项目,因为view.hm会将其作为参数传递到init函数中,这很奇怪。通过此编辑:如果未定义pass“project error NameError:name“project”,则如果未定义pass self.project错误名称error:name“self”未定义是的,视图中有一个打字错误。我更新了答案。尝试后,出现了相同的错误。若我将代码移动到init,那个么项目将正确地传递到表单,所以我需要将单词列表返回到表单。问题返回的方式与project相同,即i gor错误词列表未定义这似乎合理,您能指出init字符串后面的内容吗,我尝试过def_uuinit_uuu(self,project,*args,**kwargs):self.project=kwargs.pop(“project”)super(PostfilterForm,self)。\uu init(project,*args,**kwargs)但是得到了一个错误NameError:name'project'没有定义将参数作为kwarg传递,然后弹出它是另一种方式,但是由于表单总是需要项目,并且它不是可选参数,所以我更喜欢将其用作强制参数。只需删除弹出行并使用项目,因为view.hm会将其作为参数传递到init函数中,这很奇怪。通过此编辑:如果未定义pass“project error NameError:name“project”,则如果未定义pass self.project错误名称error:name“self”未定义是的,视图中有一个打字错误。我更新了答案。尝试后,出现了相同的错误。若我将代码移动到init,那个么项目将正确地传递到表单,所以我需要将单词列表返回到表单。问题以与project相同的方式返回,即i gor错误词\u列表未定义
project = request.GET.get('project')
form = PostfilterForm(project, request.POST)
def my_function(self):
    monitoring_words_to_show = Nlpmonitorword.objects.filter(monitoringwords__name = self.request.GET.get('project')) 
    words_list = []
    for word in monitoring_words_to_show:
        words_list.append((word.monitor_word, word.monitor_word))    
    words_list = tuple(words_list)   # trying to get here tuple to pass in choises (('vk', 'vk'), ('fb', 'fb'), ('vkfb', 'vkfb'))