Я пытаюсь создать систему, которая позволяет пользователям создавать «проекты». Эти проекты имеют довольно простой синтаксис, им просто нужны идентификатор, имя, опционально описание и участники.
Поскольку я хочу, чтобы пользователи могли добавлять или удалять других пользователей из проекта без необходимости повторного ввода всего списка пользователей, я хочу использовать строку или массив или какой-либо такой метод вместо строки.
Однако, я застрял при попытке ввести его. Сначала я попробовал обычный список, но SQLalchemy этого не принял. После поиска в гугле кажется, что это невозможно? Если я просто не наткнулся на это.
Теперь я пытаюсь использовать массив. Мой текущий код выглядит так:
class DBProject(db.Model):
__tablename__ = 'project'
project_id = db.Column(db.Integer, primary_key=True)
project_name = db.Column(db.String(128))
project_description = db.Column(db.String(255), nullable=True)
project_participants = db.Column(db.ARRAY(db.Integer))
Но это дает ошибку: в _compiler_dispatch поднять exc.UnsupportedCompilationError (посетитель, cls)
sqlalchemy.exc.CompileError: (в таблице 'project', столбец 'project_participants'): компилятор не может отобразить элемент типа
Раньше я пытался опустить (db.Integer) или заменить его просто Integer (потому что я видел это с другими людьми с похожими проблемами), например:
project_participants = db.Column(db.ARRAY(Integer))
Что дает ошибку, что 'Integer' не определено, или, в случае полного исключения, эта ошибка:
TypeError: init () отсутствует 1 обязательный позиционный аргумент:
'Item_type'
Я надеюсь добавить массив в базу данных, чтобы я мог использовать его для добавления новых пользователей или удаления пользователей без необходимости повторного ввода пользователем системы всех разрешенных пользователей, когда он просто хочет добавить или удалить один из них. .