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?

Était-ce utile?

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
scroll top