gpt4 book ai didi

python - ContentType.objects.get_for_model(obj) 在代理模型对象上使用时返回基类模型

转载 作者:行者123 更新时间:2023-12-01 09:19:20 26 4
gpt4 key购买 nike

我有一个从另一个模型派生的代理模型。现在我创建这个代理模型的对象并尝试使用 ContentType.objects.get_for_model(obj) 找出内容类型对象,它返回基类内容类型对象,而不是给我代理模型内容类型。我使用 Django 1.7.8。

class BaseModel(models.Model):
field1 = models.CharField(max_length=200)
field1 = models.CharField(max_length=200)


class ProxyModel(BaseModel):
class Meta:
proxy = True

现在我得到了一个代理模型的对象
proxy_obj = ProxyModel.objects.get(field1=1)

并试图找到 proxy_obj 的内容类型类
content_type = ContentType.objects.get_for_model(proxy_obj)

但这产生了 BaseModel 而不是 ProxyModel 的内容类型对象。为什么这是一种荒谬的行为?还是我做错了什么?

最佳答案

来自 get_for_model 的 django-docs方法:

Takes either a model class or an instance of a model, and returns the ContentType instance representing that model. for_concrete_model=False allows fetching the ContentType of a proxy model.



您必须通过 for_concrete_model=Falseget_for_model() , 像这样:
content_type = ContentType.objects.get_for_model(proxy_obj, for_concrete_model=False)

关于python - ContentType.objects.get_for_model(obj) 在代理模型对象上使用时返回基类模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36448299/

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