我正在尝试通过模型中一个表的所有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
答案 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))]