Conversation
Coverage Report
Summary
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Temmmmmo
left a comment
There was a problem hiding this comment.
Еще нужно также софт делить учесть в релейшенах
Посмотри, как это реализовано в аутхе, там хорошо прописано
| LecturerUserComment.delete(lecturer_user_comment.id, session=db.session) | ||
|
|
||
| Lecturer.delete(session=db.session, id=id) | ||
| Lecturer.update(session=db.session, id=id, is_deleted=True) |
|
Идея софтделитов в том, что можно, не меняя запросов в базу, ставить нужный флажок вместо реального удаления Опять же, данную логику можно прочитать в базовом декларативном классе Там эта логика уже прописана в методах |
|
Да, и надо nullable=False проставить, а также учесть потом это в миграции, чтобы база не упала |
|
Хоть у нас в базе нет сейчас записей, но все равно |
| op.add_column('lecturer', sa.Column('is_deleted', sa.Boolean(), nullable=False, server_default=sa.false())) | ||
| op.add_column( | ||
| 'lecturer_user_comment', sa.Column('is_deleted', sa.Boolean(), nullable=False, server_default=sa.false()) | ||
| ) |
There was a problem hiding this comment.
nullable False
надо тогда докинуть update на старые строки в базе, чтоб не упало
| lecturer_id: Mapped[int] = mapped_column( | ||
| Integer, | ||
| ForeignKey("lecturer.id"), | ||
| primary_join="and_(Comment.lecturer_id==Lecturer.id, not_(Lecturer.is_deleted))", |
There was a problem hiding this comment.
не туда вписал)
lecturer_id это не отношение
надо джоин вписать в lecturer который ниже
|
еще надо добавить тесты) |
|
Еще не доделано |
|
💩 Code linting failed, use |
Изменения
Детали реализации
Check-List
blackиisortдля Back-End илиPrettierдля Front-End?