【发布时间】:2019-09-03 23:28:57
【问题描述】:
我在实例化对象表单模型类时收到错误TypeError: Required argument 'offset' (pos 1) not found:users like a = users() 此类具有使用vars() 函数从列表service_data 创建的动态属性。
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)
这是我用来动态创建这些属性的列表:
service_data=[["username","password"],[],["email","password"]]
tarting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[13/Apr/2019 11:33:59] "GET / HTTP/1.1" 200 17234
[13/Apr/2019 11:34:02] "GET /login/ HTTP/1.1" 200 1382
True
Internal Server Error: /login_/
Traceback (most recent call last):
File "F:\softs\Anaconda3\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "F:\softs\Anaconda3\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
response = self.process_exception_by_middleware(e, request)
File "F:\softs\Anaconda3\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "F:\projects\PycharmProjects\roottic\root\views.py", line 61, in login_
a = users()
File "F:\softs\Anaconda3\lib\site-packages\django\db\models\base.py", line 459, in __init__
val = field.get_default()
File "F:\softs\Anaconda3\lib\site-packages\django\db\models\fields\__init__.py", line 798, in get_default
return self._get_default()
TypeError: Required argument 'offset' (pos 1) not found
[13/Apr/2019 11:34:04] "POST /login_/ HTTP/1.1" 500 75786
我不明白它有什么问题
【问题讨论】:
-
请添加完整回溯。
-
service_data将与此zip函数一起导致 empty 循环。 -
service_data 不是空列表
-
没错,但
zip函数将zip(["username","password"],[]),因此会导致空迭代。 -
我填了但是同样的错误
标签: python django django-models