How sqlmodel implements the same functionality as SerializerMethodField in DRF? #786
Answered
by
YuriiMotov
rubbish822
asked this question in
Questions
-
First Check
Commit to Help
Example Codefrom rest_framework import serializers
from drf_spectacular.utils import extend_schema_field
class UserSerializer(serializers.ModelSerializer):
full_name = serializers.SerializerMethodField(read_only=True)
@extend_schema_field(serializers.CharField)
def full_name(self, obj):
return f'{obj.first_name}:{obj.id}'
from rest_framework import serializers class UserSerializer(serializers.ModelSerializer):
|
Beta Was this translation helpful? Give feedback.
Answered by
YuriiMotov
Aug 21, 2025
Replies: 1 comment
-
In SQLMOdel you would use from pydantic import computed_field
from sqlmodel import Field, Session, SQLModel, create_engine
class UserBase(SQLModel):
id: int | None = Field(default=None, primary_key=True)
first_name: str
class User(UserBase, table=True):
pass
class UserRead(UserBase):
@computed_field
@property
def full_name(self) -> str:
return f"{self.first_name}:{self.id}"
sqlite_url = "sqlite:///"
engine = create_engine(sqlite_url)
SQLModel.metadata.create_all(engine)
with Session(engine) as session:
user = User(first_name="John")
session.add(user)
session.commit()
user_read = UserRead.model_validate(user)
assert user_read.full_name == "John:1" |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
YuriiMotov
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In SQLMOdel you would use
computed_field
: