와 나는 약간의 장고 모델을 가지고사용`issubclass()`장고 모델
class Foo(models.Model):
class Meta:
abstract = True
class Bar(Foo)
pass
내가 그들과 함께 작업을 수행하기 위해, 푸에서 상속 모든 모델을 찾을 수 있도록하고 싶습니다 말한다. 그것은
from django.db import models
from myapp.models import Foo
for model in models.get_models():
if issubclass(model, Foo):
do_something()
아아처럼 쉬워야한다, 이것은 아마도 모델을 초기화 장고 메타 클래스의 내부 작업의 결과로, issubclass(Bar, Foo)
보고서 False
때문에 작동하지 않습니다.
장고 모델이 장고 모델의 자손인지 여부를 확인하는 방법이 있습니까?
해결책으로 오리 타이핑을 제안하지 마십시오. 이 경우 서브 클래스 관계가 있는지 여부를 알고 싶습니다.
같은 질문을하는 ... 많은 테스트와 코드 내성 검사가 끝나면 추상 모델이 호출 가능하고 아들 객체가이 속성에 적합한 속성이나 메소드를 갖고 있지 않아서 가능하지 않은 것 같습니다. 필요합니다. – Oleiade
이상하게 보입니다 ... 방금 virtualenv에 새로운 django 응용 프로그램을 만들었고 코드가 작동하고 있습니다. 'do_something()'은 단순히 '인쇄 모델'일 뿐이며 작동합니다. 결과 :. 문제가 추상적으로 발생 했습니까? 참고 장고를 사용하고 있습니다. 1.3.1 –
또한 장고에 대해 저에게 잘 알려져 있습니다. 1.3.1 – Brandon