Próbuję sprawdzić poprawność formularza, tak aby w przypadku adresu IP użytkownika (request.META['REMOTE_ADDR']
) w tabeli BlockedIPs
nie sprawdzono poprawności. Jednak nie mam dostępu do zmiennej request
w Form
. Jak mam to zrobić? Dzięki.Zablokowane adresy IP w sprawdzaniu poprawności formularza Django
8
A
Odpowiedz
9
udostępnić go do formularza nadrzędnymi __init__
więc może być przekazywana w trakcie budowy (lub może po prostu przejść samego 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...
Teraz wystarczy przekazać obiekt request
jako Pierwszy argument podczas inicjowania formularza i niestandardowych metod sprawdzania poprawności będzie miał do niego dostęp poprzez self.request
:
if request.method == 'POST':
form = YourForm(request, request.POST)
# ...
else:
form = YourForm(request)
# ...
dzięki, właśnie tego szukałem – pitr