사용자 정의 사용자 모델을 참조하여 일부 처리를 수행해야하는 장고 모델이 하나 있습니다.게으른 클래스 속성 데코레이터
클래스 로딩 시간에 클래스의로드 순서를 알 수 없으므로이 모델의 클래스로 작업 할 수 없습니다.
def __new__(cls, *args, **kwargs):
# hack to avoid INSTALLED_APPS initialization conflicts.
# get_user_model() can't be called from this module at class loading time,
# so some class attributes must be added later.
# Metaclasses could me more appropiate but I don't want to override
# dango's metaclasses.
if not hasattr(cls, '_reverse_field_name_to_user'):
cls._find_reverse_field_name_to_user()
return Group.__new__(cls, *args, **kwargs)
그것은 작동하지만 내가 뭔가를 사용하는 방법에 대한 생각했습니다 끔찍한 같습니다
그래서 나는 어떤 클래스는 내가 같은 __init__
또는 __new__
에서 그들을 추가 해요 순간에, 런타임에 속성을 추가 할 필요가 이 속성들에 대해 @lazyclassproperty
을 좋아하십시오.
나는 @classproperty
과 @lazyproperty
데코레이터를 발견했지만 둘 모두에 대해서는 그렇지 않습니다. 어떻게 작성하나요?
질문 : 어떻게 그러한 장식자를 코딩 할 수 있습니까? 또는 현재의 바보 같은 구현에 대한 또 다른 청결한 대안을 제안하십시오.
매력처럼 작동합니다. 많은 감사, 나는 한 번 이상 upvote 수 있었으면 좋겠다! –