This commit is contained in:
parent
3b3cc1c1d8
commit
631ad47fe8
|
@ -51,15 +51,11 @@ class Draft(Base):
|
|||
# auto
|
||||
updated_at: int | None = Column(Integer, nullable=True, index=True)
|
||||
deleted_at: int | None = Column(Integer, nullable=True, index=True)
|
||||
# Переименовываем колонки ID
|
||||
|
||||
updated_by: int | None = Column("updated_by", ForeignKey("author.id"), nullable=True)
|
||||
deleted_by: int | None = Column("deleted_by", ForeignKey("author.id"), nullable=True)
|
||||
|
||||
# --- Relationships ---
|
||||
# Загружаем этих авторов сразу, т.к. они часто нужны и их немного (обычно 1)
|
||||
created_by = relationship("Author", foreign_keys=[created_by], lazy="joined", innerjoin=True)
|
||||
updated_by = relationship("Author", foreign_keys=[updated_by], lazy="joined")
|
||||
deleted_by = relationship("Author", foreign_keys=[deleted_by], lazy="joined")
|
||||
|
||||
# Оставляем lazy="select" (по умолчанию) для коллекций, будем загружать их через joinedload в запросах
|
||||
authors = relationship(Author, secondary="draft_author", lazy="select")
|
||||
|
|
|
@ -241,7 +241,7 @@ async def delete_draft(_, info, draft_id: int):
|
|||
draft = session.query(Draft).filter(Draft.id == draft_id).first()
|
||||
if not draft:
|
||||
return {"error": "Draft not found"}
|
||||
if author_id != draft.created_by and draft.authors.filter(Author.id == author_id).count() == 0:
|
||||
if author_id != draft.created_by_id and draft.authors.filter(Author.id == author_id).count() == 0:
|
||||
return {"error": "You are not allowed to delete this draft"}
|
||||
session.delete(draft)
|
||||
session.commit()
|
||||
|
|
Loading…
Reference in New Issue
Block a user