gpt4 book ai didi

python - 如何获取django模型的子类对象

转载 作者:行者123 更新时间:2023-11-28 20:54:39 24 4
gpt4 key购买 nike

当我有这样一个给定的 Django 模型类时:

class BaseClass(models.Model):
some_field = models.CharField(max_length = 80)
...

和它的一些子类,例如

class SomeClass(BaseClass):
other_field = models.CharField(max_length = 80)

然后我知道我可以通过调用获取派生对象

base  = BaseClass.objects.get(pk=3)
my_obj= base.someclass

现在问题来了,我有多个子类,而我只有一个基类的实例。如何在事先不知道类的情况下获取子类对象?


这个想法是加载一个相应的 View 并让它完成这些工作。我的项目功能对这些模型只有一组有限的默认操作,如查看、编辑、删除等。我不想要的是通过 URL 公开给定对象的类型,因此“正常方式”不可用

最佳答案

没有内置的方法。

也许最好的办法是在基类上定义一个 derived_type 字段,该字段在保存派生类时自动设置。然后,您可以在基础上使用 get_derived 方法来检查 derived_type 的值并返回实际的派生对象。

关于python - 如何获取django模型的子类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/864769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com