from typing import List
def get_all_fields(model: models.Model) -> List[str]:
return [field.name for field in model._meta.fields]
Django 개발중에 이런 함수를 만들었습니다. (무슨 코드인지는 생략)
Expected type 'Model', got 'Type[MyModel]' instead
근데 list_display에 쓰려고 보니 뭔가 오류가 나옵니다.
문제는 파라미터 타입으로 클래스의 SubType을 지정할 때 Type[T]으로 감싸줘야 한다네요. typing 어렵습니다;
(관련 내용: https://stackoverflow.com/a/44664064/4295499)
from typing import List, Type
def get_all_fields(model: Type[models.Model]) -> List[str]:
return [field.name for field in model._meta.fields]
어쨌거나 이런식으로 수정하면 됩니다.
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[django] primary key 필드 int -> uuid 마이그레이션 방법 (2) | 2021.10.10 |
---|---|
[django] 쉘 이용해 앱 초기화하는 방법 (0) | 2021.10.09 |
[Django] "You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path." 해결 방법 (0) | 2021.09.02 |
pip-autoremove: 라이브러리 디펜던시 한번에 지우기 (0) | 2021.08.23 |
pip-chill: pip로 직접 설치한 라이브러리만 보는 법 (0) | 2021.08.23 |