Django get_fields但不是外键字段

时间:2015-02-07 11:21:55

标签: javascript jquery ajax django

我正在尝试通过模型中一个表的所有fielsd搜索字符串。我试图使用" ._ meta.fields" django技巧,但它让我回到所有领域,包括Foregn Key领域。 我该如何排除这些?并且只获得" local"表中的字段?

例如我有:

class Info(models.Model):
    concerning      = models.ForeignKey(User)
    name            = models.CharField(max_length=100 , blank=True)
    value           = models.CharField(max_length=1000, blank=True)
    creation_date   = models.DateTimeField(auto_now_add=True)

我想得到:(名称,价值,creation_date)

我查看了这些页面,但找不到方法:

https://code.djangoproject.com/wiki/new_meta_api

Search multiple fields of django model without 3rd party app

Get model's fields in Django

1 个答案:

答案 0 :(得分:0)

只需使用isinstance()检查字段的类:

simple_field_names = [field.name for field in Info._meta.fields
                             if field.name != 'id' and
                                not isinstance(field, models.ForeignKey)]

如果您只想获取文本字段列表,则可以将所需类的列表传递给isinstance()函数:

text_field_names = [field.name for field in Info._meta.fields
                    if isinstance(field, (models.CharField, models.TextField))]