gpt4 book ai didi

django - 'ContentType' 对象在数据迁移中没有属性 'model_class'

转载 作者:行者123 更新时间:2023-12-05 00:48:33 24 4
gpt4 key购买 nike

我的数据迁移文件中有这个:

def set_target_user(apps, schema_editor):
LogEntry = apps.get_model('auditlog', 'LogEntry')
ContentType = apps.get_model('contenttypes', 'ContentType')
for entry in LogEntry.objects.filter(target_user=None):
ct = ContentType.objects.get(id=entry.content_type.id)
model = ct.model_class()

我提到了 AttributeError。但它在其他模块(不是迁移)中运行良好。任何想法如何克服这个问题?

最佳答案

当您在迁移中调用 apps.get_model 时,您不会获得实际的模型类,您会获得一个特定于迁移的类,该类是使用在该点上的字段动态创建的迁徙史。它不会有任何真正的 ContentType 模型的方法。

您可能应该再次使用 apps.get_model 来获取该内容类型的历史模型:

model = apps.get_model(ct.app_label, ct.model)

关于django - 'ContentType' 对象在数据迁移中没有属性 'model_class',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50287921/

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