我正在尝试验证表单,如果用户 ( request.META['REMOTE_ADDR']
) 的 IP 在表中BlockedIPs
,则验证将失败。但是我无权request
访问Form
. 我该怎么做?谢谢。
pitra
问问题
623 次
1 回答
9
通过覆盖使其可用于您的表单,__init__
以便可以在构造期间传入(或者您可以只传递 IP 本身):
from django import forms
class YourForm(forms.Form)
# fields...
def __init__(self, request, *args, **kwargs):
self.request = request
super(YourForm, self).__init__(*args, **kwargs)
# validation methods...
现在您只需request
在初始化表单时将对象作为第一个参数传递,您的自定义验证方法将可以通过以下方式访问它self.request
:
if request.method == 'POST':
form = YourForm(request, request.POST)
# ...
else:
form = YourForm(request)
# ...
于 2009-02-18T10:22:58.280 回答