use*_*741 5 django django-models
我当前定义的模型如下:
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,是否有更好的方法来做到这一点?
你可以使用该concrete_fields财产。
Category._meta.concrete_fields
Run Code Online (Sandbox Code Playgroud)
get_fields()然而,这是一个内部 Django API,即使它可能更冗长,但与您自己的过滤一起使用可能会更好。
| 归档时间: |
|
| 查看次数: |
1410 次 |
| 最近记录: |