Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:必需参数';偏移量';(位置1)未找到_Python_Django_Django Models - Fatal编程技术网

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
like
a=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)