Python 如何访问Django表单中的请求对象
我需要访问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
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