Метод Django Forms clean () - нужен IP-адрес клиента - PullRequest
3 голосов
/ 13 сентября 2009

Я переопределяю метод clean () в форме Django. Я хочу иметь доступ к IP-адресу клиента (при условии, что это связанная форма). Если бы у меня была ссылка на объект запроса, я мог бы легко получить его из META ("REMOTE_ADDR"). Однако у меня нет ссылки на запрос.

Есть идеи, как это можно сделать?

1 Ответ

13 голосов
/ 13 сентября 2009

Так что дайте себе ссылку на это.

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']

и по вашему мнению:

myform = MyModelForm(request.POST, request=request)
...