Вопрос подписчика
Задает @levisserena:
Всем привет. Помогите разобраться с TypeVar
Один из соразработчиков указал что-то типа того (упрощу, но не всё, чтоб картина была):
Вопрос к строке result = await session.execute(select(self.model).where(self.model.id == obj_id)), а точнее к self.model.id.
Линтер подчеркивает это self.model.id, мол нет у него атрибута id ("type[ModelType]" has no attribute "id").
Как быть? Есть ли способ, обойтись малой кровью, и указать, что id или любой другой атрибут есть? Ну или как это делать по правильному.
NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике.
#обсуждение
@zen_of_python
Задает @levisserena:
Всем привет. Помогите разобраться с TypeVar
Один из соразработчиков указал что-то типа того (упрощу, но не всё, чтоб картина была):
from typing import TypeVar
from uuid import UUID
from sqlalchemy.ext.asyncio import AsyncSession
ModelType = TypeVar('ModelType')
class CRUDBase(Generic[ModelType]):
def __init__(self, model: Type[ModelType]):
"""
Инициализирует CRUD-класс с указанной моделью.
Параметры:
model: SQLAlchemy-модель (класс), связанный с таблицей в БД.
"""
self.model = model
async def get(self, session: AsyncSession, obj_id: int | str | UUID) -> ModelType | None:
"""
Получает объект по ID (int, str или UUID).
Возвращает объект модели или None, если он не найден.
"""
result = await session.execute(select(self.model).where(self.model.id == obj_id))
return result.scalars().first()
Вопрос к строке result = await session.execute(select(self.model).where(self.model.id == obj_id)), а точнее к self.model.id.
Линтер подчеркивает это self.model.id, мол нет у него атрибута id ("type[ModelType]" has no attribute "id").
Как быть? Есть ли способ, обойтись малой кровью, и указать, что id или любой другой атрибут есть? Ну или как это делать по правильному.
NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике.
#обсуждение
@zen_of_python
Вопрос подписчика
Задает @Chellbas:
«Меня вот интересует следующая тема, я с ней столкнулся когда придумал тему и распределил логику для моего нового проекта, все этапы прошёл и подошёл к моменту выбора технологий для бекенд части, выбор пал между FastAPI и DRF, FastAPI я на данный момент использую на работе, и подумывал для разнообразия использовать DRF, и вот мы непосредственно подошли к вопросу, как используя экосистему DRF, сделать инную архитектуру, например - луковую, DDD и прочие, но Django нам навязывает же буквально Featute архитектуру, где границы приложения разбиты по модулям через команду startapp, а если писать проект на нем без этой команды, вручную настраивая все, не получается запустить и поднять сервер, как минимум из-за того что конфигурационный файл не может правильно все распределить и получается используя django мы заручники отдой архитектуры, зачастую монолитной, хотел бы услышать советы и указание что делать, возможно я как то не понимаю, очень интересно было бы послушать советы, заранее спасибо!»
#обсуждение
@zen_of_python
Задает @Chellbas:
«Меня вот интересует следующая тема, я с ней столкнулся когда придумал тему и распределил логику для моего нового проекта, все этапы прошёл и подошёл к моменту выбора технологий для бекенд части, выбор пал между FastAPI и DRF, FastAPI я на данный момент использую на работе, и подумывал для разнообразия использовать DRF, и вот мы непосредственно подошли к вопросу, как используя экосистему DRF, сделать инную архитектуру, например - луковую, DDD и прочие, но Django нам навязывает же буквально Featute архитектуру, где границы приложения разбиты по модулям через команду startapp, а если писать проект на нем без этой команды, вручную настраивая все, не получается запустить и поднять сервер, как минимум из-за того что конфигурационный файл не может правильно все распределить и получается используя django мы заручники отдой архитектуры, зачастую монолитной, хотел бы услышать советы и указание что делать, возможно я как то не понимаю, очень интересно было бы послушать советы, заранее спасибо!»
#обсуждение
@zen_of_python
🤔2🔥1