The situation is as follows. There is a blog project on flask , connected the admin panel by means of flask-admin . Configured through app.py by adding:

 admin.add_view(ModelView(Post, db.session)) admin.add_view(ModelView(Tag, db.session)) 

In the first case, work with posts goes flawlessly (create a post, edit, delete). Everything works out with a bang.

But as for Tag this is where the problem arises. Editing the already created (manually) tags is great, but when you create a tag, the following message takes off after filling in the fields:

 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 

As I understand it, the wrong data type arrives at the input, but I cannot understand where exactly the problem (or rather what) is.
I would be grateful for any tips.

    1 answer 1

     def slugify(s): pattern = r'[^\w+]' return re.sub(pattern, '-', str(s)) # ЗамСняСт ΠΈΡ… Π½Π° дСфис 

    It was necessary to bring the value of S to a string.

    • and in which line and in which file you need to add this code? And what is the "S"? - discipleartem