在Django中,是否可以将表单字段的默认值设置为与请求变量绑定。例如request.META['REMOTE_ADDR']
。
这只是一个示例,它希望使用request
变量中的任何标头,而不将其明确传递给表单。
感谢。
答案 0 :(得分:1)
不可能,因为请求对象不是全局可用的,因此除非显式传入,否则它在表单中不可用。initial
参数存在于您要解决的问题中。你应该使用
form = YourForm(..., initial={'your_field': request.META['REMOTE_ADDR'])
在你看来。
编辑:
如果您想明确传递request
,可以使用类似的内容,然后在实例化表单时传递request=request
:
class YourForm(forms.Form):
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request')
super(YourForm, self).__init__(*args, **kwargs)
# ... use self.request in clean etc