Spaces:
Running
on
Zero
Running
on
Zero
File size: 906 Bytes
0f43f8a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
from datetime import datetime
from typing import List
from django.db import models
from pydantic import BaseModel as _BaseModel
from pydantic import ConfigDict
class BaseModel(_BaseModel):
@classmethod
def from_orms(cls, instances: List[models.Model]):
return [cls.model_validate(inst) for inst in instances]
class FastQuestion(BaseModel):
question_text: str
pub_date: datetime
model_config = ConfigDict(from_attributes=True)
class FastQuestions(BaseModel):
items: List[FastQuestion]
@classmethod
def from_qs(cls, qs):
return cls(items=FastQuestion.from_orms(qs))
class FastChoice(BaseModel):
question: FastQuestion
choice_text: str
model_config = ConfigDict(from_attributes=True)
class FastChoices(BaseModel):
items: List[FastChoice]
@classmethod
def from_qs(cls, qs):
return cls(items=FastChoice.from_orms(qs))
|