ama*_*ann 7 python django django-models manytomanyfield manyrelatedmanager
如何检查django中多对多字段的类型?
我想这样做:
import django
field.__class__ == django.db.models.fields.related.ManyRelatedManager
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为ManyRelatedManager找不到类.但是,如果我做field.__class__的输出是django.db.models.fields.related.ManyRelatedManager
为什么它指的是一个似乎不存在的类,我怎样才能将它带到工作中?
非常感谢您的帮助.
Bra*_*ant 15
您应该能够将其作为字符串进行检查.
field.__class__.__name__ == 'ManyRelatedManager'
Run Code Online (Sandbox Code Playgroud)
如果您已有字段实例,则可以执行以下操作:
if isinstance(field, ManyToManyField):
pass // stuff
Run Code Online (Sandbox Code Playgroud)
如果您只有相关的管理器实例,则可以反向查找字段实例:
>>> print fm
<class 'django.db.models.fields.related.ManyRelatedManager'>
>>> print fm.instance._meta.get_field_by_name('fieldnamehere')
(<django.db.models.fields.related.ForeignKey: fieldnamehere>, None, True, False)
Run Code Online (Sandbox Code Playgroud)
这只是在Django 1.5上测试过的
| 归档时间: |
|
| 查看次数: |
5570 次 |
| 最近记录: |