【发布时间】:2016-04-14 14:13:23
【问题描述】:
我想使用 def/function 获取默认值
看一下sn-p代码:
models.py
from django.http import HttpRequest
class Contacts(Model):
def get_client_ip(ip):
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = request.META.get('REMOTE_ADDR')
return ip
ipaddress = CharField(default=get_client_ip, max_length=20, verbose_name='your IP Address')
makemigrations 和 migrate 执行它时没有错误或警告。
当我跑步时,我得到了以下信息: 异常值:get_client_ip() 缺少 1 个必需的位置参数:'ip'
你能帮我解决一下吗?
【问题讨论】:
-
不应该是
def get_client_ip(self, ip): -
另外你的
get_client_ip不知道request -
@JacquesGaudin,我按照你说的做了,得到以下信息:“异常值:get_client_ip() 缺少 2 个必需的位置参数:'self' 和 'ip'”
-
@ilse2005,好的,我该如何解决?
标签: python django django-models