django - 有模型类如何获取所有字段的列表,它们的类型和参数传递?

时间:2012-11-23 15:07:29

标签: python django introspection django-haystack

假设我有以下模型:

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创建索引类。

1 个答案:

答案 0 :(得分:3)

您可以使用类元数据轻松获取模型字段属性。

MyModel._meta.fields

返回字段列表。 此列表中的每个字段都包含众所周知的属性(nameverbose_name等。)