情况如下。上有一个博客项目flask,我按照自己的方式连接了管理面板flask-admin。app.py通过添加配置:
admin.add_view(ModelView(Post, db.session))
admin.add_view(ModelView(Tag, db.session))
在第一种情况下,使用帖子没有任何抱怨(创建帖子、编辑、删除)。一切都很顺利。
但就目前Tag而言,这就是问题出现的地方。编辑已经创建(手动)的标签很好,但是当您创建标签时,填写字段后,会弹出以下消息:
builtins.TypeError
TypeError: expected string or bytes-like object
Traceback (most recent call last):
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask/app.py", line 1997, in __call__
return self.wsgi_app(environ, start_response)
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask/app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask/app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask_admin/base.py", line 69, in inner
return self._run_view(f, *args, **kwargs)
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask_admin/base.py", line 368, in _run_view
return fn(self, *args, **kwargs)
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask_admin/model/base.py", line 1997, in create_view
model = self.create_model(form)
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask_admin/contrib/sqla/view.py", line 1079, in create_model
if not self.handle_view_exception(ex):
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask_admin/contrib/sqla/view.py", line 1062, in handle_view_exception
return super(ModelView, self).handle_view_exception(exc)
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/flask_admin/contrib/sqla/view.py", line 1073, in create_model
model = self.model()
File "<string>", line 4, in __init__
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/sqlalchemy/orm/state.py", line 417, in _initialize_instance
manager.dispatch.init_failure(self, args, kwargs)
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__
compat.reraise(exc_type, exc_value, exc_tb)
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 187, in reraise
raise value
File "/home/moonz/Рабочий стол/Flask/venv/lib/python3.6/site-packages/sqlalchemy/orm/state.py", line 414, in _initialize_instance
return manager.original_init(*mixed[1:], **kwargs)
File "/home/moonz/Рабочий стол/Flask/models.py", line 50, in __init__
self.slug = slugify(self.name)
File "/home/moonz/Рабочий стол/Flask/models.py", line 8, in slugify
return re.sub(pattern, '-', s) # Заменяет их на дефис
File "/usr/lib/python3.6/re.py", line 191, in sub
return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or bytes-like object
据我了解,输入了错误的数据类型,但我无法准确理解问题出在哪里(或者更确切地说,在什么问题上)。
我将不胜感激任何提示。
有必要将 S 的值转换为字符串。