Méthode Django Forms clean () - nécessite l'adresse IP du client
-
07-07-2019 - |
Question
Je remplace la méthode clean () sur un formulaire Django. Je veux avoir accès à l'adresse IP du client (en supposant qu'il s'agisse d'un formulaire lié). Si j'avais une référence à l'objet de requête, je pourrais l'obtenir facilement auprès de META ("REMOTE_ADDR"). Cependant, je n'ai pas de référence à la demande.
Des idées sur la façon dont cela pourrait être fait?
La solution
Alors donnez-vous une référence.
class MyModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request', None)
super(MyModelForm, self).__init__(*args, **kwargs)
def clean(self):
ip_address = self.request['META']['REMOTE_ADDR']
et à votre avis:
myform = MyModelForm(request.POST, request=request)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow