Djangoのモデルに定義されたフィールドを列挙する

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なんかはこの情報を使ってクラスを生成してるわけです。
汎用のモジュールを作るときに、結構使います。