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表单中的请求对象_Python_Django - Fatal编程技术网

Python 如何访问Django表单中的请求对象

Python 如何访问Django表单中的请求对象,python,django,Python,Django,我需要访问Django表单中的请求对象,以便按照下面代码中的样子动态命名表单字段。请求对象当前未返回任何值。如何在表单中包含请求对象 class PartitionAdminForm(UserCreationForm): class Meta(UserCreationForm.Meta): model = User def __init__(self, *args, **kwargs): super().__init__(*args, **kw

我需要访问Django表单中的请求对象,以便按照下面代码中的样子动态命名表单字段。请求对象当前未返回任何值。如何在表单中包含请求对象

class PartitionAdminForm(UserCreationForm):

    class Meta(UserCreationForm.Meta):
        model = User

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        request = kwargs.get('user', None)
        term_partition = core_utils.get_system_terms(request).get("partition")

        if self.fields.get('username'):
            self.fields['username'].label = _(f"{term_partition} Super Admin Username")
            self.fields['username'].help_text = ""

通过使用函数get_form_kwargs从CreateView中注入请求对象来解决此问题,如下所示:

def get_form_kwargs(self):
    kwargs = super(PartitionAdminCreateView, self).get_form_kwargs()
    kwargs['request'] = self.request
    return kwargs
然后在表单内部,我必须在初始化表单之前弹出请求对象,如下所示:

def __init__(self, *args, **kwargs):
    request = kwargs.pop('request', None)
    term_partition = core_utils.get_system_terms(request).get("partition")
    super().__init__(*args, **kwargs)
    ....
    ....

您如何初始化表单?如果将
request
作为参数添加到表单中,则在调用
super