Django get_fields 但不是外键字段

Django get_fields but not foreignkey fields

我正在尝试通过我模型中一个 table 的所有字段搜索字符串。我尝试使用“._meta.fields”django 技巧,但它返回了所有字段,包括 Foregn Key 字段。 我怎样才能排除这些?并仅从 table ?

中获取 "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

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

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

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

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