728x90
반응형
SQLModel에서 모든 field를 가져올 때
model.__fields__.keys()
위의 메소드를 많이 사용하곤 한다. 하지만 여기서 키를 못 가져오는 경우가 있는데 필드 이름 앞에 _가 붙은 경우다. 필자의 경우에는 타임스탬프 필드를 가져와야 했는데 필드 이름이 _TIMESTAMP로 되어 있어서 해당 필드를 가져올 수 없었다. 그럴 때 사용할 수 있는 파이썬의 내장 함수가 있다. 필자의 SQLModel 코드는 아래와 같다.
from datetime import datetime
from typing import Optional
from sqlmodel import SQLModel
class TestModel(SQLModel):
id: Optional[int]
author: Optional[str]
description: Optional[str]
_TIMESTAMP: Optional[datetime]
dir
Python 공식 문서의 링크
https://docs.python.org/ko/3/library/functions.html#dir
dir을 사용하지 않았을 땐 _TIMESTAMP 필드가 나오지 않는다.
dir을 사용하면 다음과 같이 모든 속성을 볼 수 있다. 필자의 경우엔 SQLModel을 사용했으므로 SQLModel의 모든 속성이 나오는 것을 볼 수 있다.
이제 _TIMESTAMP 필드가 있는지 확인할 수 있게 되었다.
주의할 사항은 해당 방법은 모듈의 캡슐화를 깨는 방법으로 정말 필요한 경우에만 사용해야 하며 모델에 _를 쓰지 않는 것이 더 근본적인 해결 방법이다.
728x90
반응형
'Language > Python' 카테고리의 다른 글
Python os.path 함수 정리 (0) | 2024.03.16 |
---|---|
파이썬에서 2중 리스트를 flatten하게 만들기 (0) | 2024.03.13 |
[파이썬] 파일 압축 후 google drive api를 이용해 google drive에 업로드하기 (0) | 2020.12.08 |
[라즈베리파이] 라즈베리파이와 윈도우 PC 소켓 통신 하기 (0) | 2020.11.23 |