【发布时间】:2009-09-13 19:16:00
【问题描述】:
我正在覆盖 Django 表单上的 clean() 方法。我想访问客户端的 IP 地址(假设这是绑定形式)。如果我有对请求对象的引用,我可以从 META("REMOTE_ADDR") 轻松获取它。但是,我没有提及该请求。
关于如何做到这一点的任何想法?
【问题讨论】:
标签: django forms ip-address
我正在覆盖 Django 表单上的 clean() 方法。我想访问客户端的 IP 地址(假设这是绑定形式)。如果我有对请求对象的引用,我可以从 META("REMOTE_ADDR") 轻松获取它。但是,我没有提及该请求。
关于如何做到这一点的任何想法?
【问题讨论】:
标签: django forms ip-address
所以给自己一个参考。
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)
【讨论】:
request 参数将导致异常。