[英]how to access request object inside Django Form
我需要访问 Django 表单中的请求对象,以动态命名表单字段,就像下面的代码一样。 请求对象当前返回 None。 我如何在表单中包含请求对象?
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)
....
....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.