と私はいくつかのDjangoのモデルを持っているを使用して、私は彼らと一緒に作業を行うためには、Fooの継承すべてのモデルを見つけることができるようにしたいと思い`issubclass()` Djangoのモデル
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()
ああ、これはおそらくモデルを初期化Djangoのメタクラスの内部の作業の結果として、issubclass(Bar, Foo)
レポートFalse
いるため、動作しないように、簡単にする必要があります。
Djangoモデルが抽象的なDjangoモデルの子孫であるかどうかを確認する方法はありますか?
解決策としてダックタイピングを提案しないでください。この場合、私は本当にサブクラスの関係が存在するかどうかを知りたいと思います。
私は同じ質問をしています... 多くのテストとコードイントロスペクションの後、抽象モデルは呼び出し可能であり、sonオブジェクトはこれに適合する属性やメソッドを持っていないため、ニーズ。 – Oleiade
私はvirtualenvで新しいdjangoアプリケーションを作成しました。あなたのコードは動作しています。私の 'do_something()'は単なる 'プリントモデル'であり、動作します。結果:。 あなたの問題は抽象的であると確信していますか? FYI私はdjangoを使っています。1.3.1 –
Django 1.3.1でも私のために働いています。 – Brandon