pit*_*itr 8 django django-forms
我正在尝试验证表单,这样如果user(request.META['REMOTE_ADDR'])的IP 在表中BlockedIPs,它将无法验证.但是我无法访问request变量Form.我该怎么做?谢谢.
通过覆盖使其可用于您的表单,__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...
Run Code Online (Sandbox Code Playgroud)
现在,您只需要request在初始化表单时将对象作为第一个参数传递,您的自定义验证方法将通过self.request以下方式访问它:
if request.method == 'POST':
form = YourForm(request, request.POST)
# ...
else:
form = YourForm(request)
# ...
Run Code Online (Sandbox Code Playgroud)