1

次のモデルがあると仮定します。

class Note(models.Model):
    user = models.ForeignKey(User)
    pub_date = models.DateTimeField()
    title = models.CharField(max_length=200)
    body = models.TextField()

    def __unicode__(self):
        return self.title

次のように機能する関数が必要です。

print inspectModelClass(Note)

>>> {user:('ForeignKey', {null:False, unique:False, blank:False...}), pub_date:('DateTimeField',{null:False, unique:False,...})...}

django.model.field のインスタンスのみを一覧表示する方法、それらの名前、適切な型 (BooleanField、CharField など)、および null、unique、max_chars などのプロパティを取得する方法がわかりません。

それを手伝ってもらえますか?

これが必要な理由は、そのような関数があれば、django-haystack の Index クラスを動的に作成できるからです。

4

1 に答える 1

3

クラスMetadataを使用して、モデルフィールドのプロパティを簡単に取得できます。

MyModel._meta.fields

フィールドのリストを返します。このリストのすべてのフィールドには、よく知られている属性(nameなどverbose_name)があります。

于 2012-11-23T15:14:35.097 に答える