Python TypeError:必需参数';偏移量';(位置1)未找到
当我实例化一个对象表单模型类:Python TypeError:必需参数';偏移量';(位置1)未找到,python,django,django-models,Python,Django,Django Models,当我实例化一个对象表单模型类:userslikea=users()这个类具有使用vars()函数从列表服务数据创建的动态属性时,我得到了一个错误TypeError:Required参数'offset'(位置1) class users(models.Model): for i, j in zip(config.service_data[0], config.service_data[1]): vars()[i] = CrudAPI.create_db_field
users
likea=users()
这个类具有使用vars()
函数从列表服务数据创建的动态属性时,我得到了一个错误TypeError:Required参数'offset'(位置1)
class users(models.Model):
for i, j in zip(config.service_data[0], config.service_data[1]):
vars()[i] = CrudAPI.create_db_field(j)
这是create_db_field方法代码:
def create_db_field(test):
if (test == "char50"):
return models.CharField(max_length=50, blank=True)
if (test == "text"):
return models.TextField(blank=True)
if (test == "date"):
return models.DateField(blank=True)
if (test == "datetime"):
return models.DateTimeField(default=datetime.timezone, blank=True)
if (test == "number"):
return models.FloatField(blank=True)
这是我用来动态创建这些属性的列表:
服务数据=[[“用户名”、“密码”]、[]、[“电子邮件”、“密码”]]
我不明白它有什么问题在您的创建\u db_字段
方法中,您将“datetime”选项定义为返回一个默认为datetime.timezone
的日期时间字段。这就是在不设置该字段的情况下创建users
的新实例时将调用的内容。但是timezone()
是一个函数,它需要一个参数offset
,而您不会传递该参数
我怀疑您不是想使用标准datetime模块中的函数,而是Django函数timezone。现在改为:
from django.utils import timezone
...
return models.DateTimeField(default=timezone.now, blank=True)
(我必须说,与您的错误无关,这是一件非常奇怪的事情;这有什么意义?Django模型反映数据库中的表,为什么要尝试动态定义它们?请添加完整的回溯。服务\u数据
将,使用此zip
函数将导致一个空循环。服务\u数据不是空列表这是正确的,但是zip
函数将zip([“用户名”、“密码”],[])
,从而导致一个空的iterable。我填写了它们,但出现了相同的错误
from django.utils import timezone
...
return models.DateTimeField(default=timezone.now, blank=True)