request.META['REMOTE_ADDR']
ユーザー ( ) の IP がテーブルにある場合、検証に失敗するように、フォームを検証しようとしていますBlockedIPs
。request
ただし、の変数にアクセスできませんForm
。どうすればいいのですか?ありがとう。
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 に答える