Django表单干净()方法 - 客户端需要IP地址(Django Forms clean() me

2019-08-05 19:20发布

我重写一个Django的形式在干净的()方法。 我想有机会获得客户端的IP地址(假设这是一个结合型)。 如果我不得不请求对象的引用,我可以很容易地从META(“REMOTE_ADDR”)得到它。 不过,我没有请求的参考。

这是如何任何想法可以这样做?

Answer 1:

所以,给自己对它的引用。

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)


文章来源: Django Forms clean() method - need IP address of client