2009-02-18 12 views
8

मैं एक फॉर्म को सत्यापित करने की कोशिश कर रहा हूं, जैसे कि यदि उपयोगकर्ता का आईपी (request.META['REMOTE_ADDR']) तालिका BlockedIPs में है, तो यह सत्यापन विफल हो जाएगा। हालांकि मेरे पास request वैरिएबल तक Form तक पहुंच नहीं है। मैं यह कैसे करुं? धन्यवाद। अब आप बस के रूप में request वस्तु पास करनी होगीDjango फॉर्म सत्यापन में प्रतिबंधित आईपी

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... 

:

उत्तर

9

__init__ तो यह (या तुम सिर्फ आईपी ही दे सकते हैं) निर्माण के दौरान में पारित किया जा सकता अधिभावी द्वारा इसे अपने फार्म पर उपलब्ध कराएं फॉर्म शुरू करने पर पहली तर्क और आपकी कस्टम सत्यापन विधियों के पास self.request:

if request.method == 'POST': 
    form = YourForm(request, request.POST) 
    # ... 
else: 
    form = YourForm(request) 
# ... 
+0

धन्यवाद, यह वही है जो मैं ढूंढ रहा था – pitr

संबंधित मुद्दे