小编use*_*741的帖子

排除 model._meta.get_fields() 中的相关字段

我当前定义的模型如下:

class Category(models.Model):
    ID = models.AutoField()
    name = models.CharField()
    desc = models.CharField()
Run Code Online (Sandbox Code Playgroud)

另一个模型Subcategory有一个ForeignKey定义Category

当我跑步时:

Category._meta.get_fields()
Run Code Online (Sandbox Code Playgroud)

我得到:

(<ManyToOneRel: siteapp.subcategory>, <django.db.models.fields.AutoField: ID>, <django.db.models.fields.CharField: name>, <django.db.models.fields.CharField: desc>)
Run Code Online (Sandbox Code Playgroud)

然而,我不想要这些ManyToOneRel田地;我只想要其他人。

目前,我正在做这样的事情:

from django.db.models.fields.reverse_related import ManyToOneRel
field_list = []
for field in modelClass._meta.get_fields():
    if not isinstance(field, ManyToOneRel):
        field_list.append(field)
Run Code Online (Sandbox Code Playgroud)

但是,无论使用还是不使用模型_metaAPI,是否有更好的方法来做到这一点?

django django-models

5
推荐指数
1
解决办法
1410
查看次数

标签 统计

django ×1

django-models ×1