Код: Выделить всё
class Realms(models.Model):
"""
The Realm model
"""
id = fields.IntField(primary_key=True)
name = fields.CharField(max_length=50, null=True, description=f"Наименование пространства")
realm_stocks: fields.ReverseRelation["Stocks"]
def stocks_count(self) -> int:
try:
return len(self.realm_stocks)
except NoValuesFetched:
return -1
class PydanticMeta:
computed = ["stocks_count"]
exclude = ["realm_stocks"]
class Meta:
table="msa_realms"
Код: Выделить всё
class Stocks(models.Model):
"""
The Stocks model
"""
id = fields.IntField(primary_key=True)
mtr_description = fields.CharField(max_length=2000, null=True)
realm: fields.ForeignKeyRelation[Realms] = fields.ForeignKeyField("models.Realms", related_name="realm_stocks")
class Meta:
table="msa_stocks"
Код: Выделить всё
@router.get("/msa_realms", response_model=List[Realm_Pydantic])
async def get_realms():
return await Realm_Pydantic.from_queryset(Realms.all().prefetch_related('realm_stocks'))
AttributeError: у объекта «Realm» нет атрибута «realm_stocks»
Когда я удаляю свойство **exclude ** из PydanticMeta, у меня остаются все ненужные акции.
Мне нужен ответ, который будет содержать только акции подсчитывают имущество
{
"id": 2,
"name": "Сфера 2",
"stocks_count": 100
Подробнее здесь: https://stackoverflow.com/questions/789 ... rtoise-orm