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

4

1 回答 1

3

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

MyModel._meta.fields

返回字段列表。此列表中的每个字段都有您熟知的属性(nameverbose_name

于 2012-11-23T15:14:35.097 回答