Djangoのモデルに定義されたいろいろな情報を列挙するには、 _meta を使うことでできます。
>>> from django.contrib.auth.models import User >>> for f in User._meta.fields: ... print f ... <django.db.models.fields.AutoField object at 0x01400290> <django.db.models.fields.CharField object at 0x013FBA50> <django.db.models.fields.CharField object at 0x013FBAB0> <django.db.models.fields.CharField object at 0x013FBB10> <django.db.models.fields.EmailField object at 0x013FBB70> <django.db.models.fields.CharField object at 0x013FBC10> <django.db.models.fields.BooleanField object at 0x013FBCB0> <django.db.models.fields.BooleanField object at 0x013FBD50> <django.db.models.fields.BooleanField object at 0x013FBDF0> <django.db.models.fields.DateTimeField object at 0x013FBE70> <django.db.models.fields.DateTimeField object at 0x013FBEB0> >>> for f in User._meta.many_to_many: ... print f ... <django.db.models.fields.related.ManyToManyField object at 0x013FBF50> <django.db.models.fields.related.ManyToManyField object at 0x01400050>
django.forms.ModelFormなんかはこの情報を使ってクラスを生成してるわけです。
汎用のモジュールを作るときに、結構使います。