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))]
我正在尝试通过我模型中一个 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))]