django - django __class__ 方法不适用于 m2m 关系
问题描述
在我的 django 项目中的一个实例中,我需要对象的反向关系的类名,因为我使用了__class__
method 。
这适用于 OneToOne 关系,即
print(instance.content_object.__class__)
输出是 -
<class 'products.models.ProductCreateModel'>
但是当它与 m2m 一起使用时,它给了我
print(instance.product_seller.__class__)
输出是 -
<class 'django.db.models.fields.related_descriptors.create_reverse_many_to_one_manager.<locals>.RelatedManager'>
我怎样才能得到班级名称?
解决方案
这是因为 product_seller 不是 Seller 类的实例,它是一个管理对模型中一组对象的访问的对象RelatedManager
。尝试instance.product_seller.model
获取该集合中的对象类别。
推荐阅读
- android - 关于 sdk 版本的 ionic android 构建失败
- mysql - 生成存储过程失败
- .net - AuthorizationCodeReceived 会话为空
- r - R highcharter 图形 x 轴 1 1970 年 1 月 1 日
- mongodb - 使用聚合在 MongoDb 中进行分组
- ios - 使用 rgba 更改表格视图单元格的文本颜色
- rust - Flattening a nested structure
- mips - lui 指令中的立即数范围
- php - 如何在 PHP 的关联数组中使用复杂对象作为键?
- javascript - 在 slickgrid 上混合可点击行和不可点击行