gpt4 book ai didi

python - 将 `issubclass()` 与 Django 模型一起使用

转载 作者:太空狗 更新时间:2023-10-30 00:18:09 25 4
gpt4 key购买 nike

我有一些 Django 模型,比如说

class Foo(models.Model):
class Meta:
abstract = True

class Bar(Foo)
pass

我希望能够找到所有继承自 Foo 的模型,以便与它们一起执行任务。应该很简单,比如

from django.db import models
from myapp.models import Foo

for model in models.get_models():
if issubclass(model, Foo):
do_something()

唉,这是行不通的,因为 issubclass(Bar, Foo) 报告 False,这可能是初始化模型的 Django 元类的内部工作的结果.

Is there a way to check whether a Django models is a descendant of an abstract Django model?

请不要建议使用 duck typing 作为解决方案。在这种情况下,我很想知道是否存在子类关系。

最佳答案

问题在于如何导入类。而不是:

from myapp.models import Foo

使用:

from myproject.myapp.models import Foo

要了解什么是正确的方法,您可以查看 Django 如何导入您的模型:

print models.get_models()

关于python - 将 `issubclass()` 与 Django 模型一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7914787/

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