首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果ForeignKey的值为None,如何获取object的类型?

问如果ForeignKey的值为None,如何获取object的类型?
EN

Stack Overflow用户
提问于 2021-07-22 20:06:54
回答 1查看 33关注 0票数 1

我已经得到了一个基本的外键表结构

代码语言:javascript
复制
class Category(models.Model):
    id_pk = models.AutoField(primary_key=True)
    label = models.CharField(unique=True, max_length=200, blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'category'

和

代码语言:javascript
复制
class PartProperty(models.Model):
    id_pk = models.AutoField(primary_key=True)
    category = models.ForeignKey(Category, models.DO_NOTHING, blank=True, null=True)


    class Meta:
        managed = False
        db_table = 'part_property'

如果PartProperty中的一行有一个Category对象,我可以分别通过part_property = PartProperty.objects.select_related().filter(id_pk=part_property_id)和part_property[0].catogory访问这个对象,通过part_property .values(*(self.__COLUMN_NAMES))[0]['self.__COLUMN_NAMES[i]]动态地访问这个对象,设置一个新值并保存外键指向的表。

但是如果part_property[0].catogory为None,我就没有用于创建外键表对象的对象类型。

可以从PartProperty / PartProperty模型中动态获取对象类型吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-22 21:40:46

您可以通过_meta属性动态获取字段的模型类。例如,PartProperty._meta.get_field("category").related_model将返回Category模型类。

您还可以动态获取模型的字段列表。有关_meta接口的官方文档,请参阅以下链接:https://docs.djangoproject.com/en/3.2/ref/models/meta/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68484557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档