gpt4 book ai didi

django - 无法将关键字 'content_type' 解析为字段

转载 作者:行者123 更新时间:2023-12-03 21:33:00 26 4
gpt4 key购买 nike

我正在尝试使用通用关系,我的模型如下所示:

class Post(models.Model):
# Identifiers
user = models.ForeignKey(User, unique=False, related_name = 'posts')
# Resource
resource_type = models.ForeignKey(ContentType)
resource_id = models.PositiveIntegerField()
resource = GenericForeignKey('resource_type', 'resource_id')

# Other
date_created = models.DateTimeField(auto_now=False, auto_now_add=True, blank=True)

class Meta:
unique_together = ('resource_type', 'resource_id',)

但是,在我的资源上,我尝试使用“ SomeResource.posts”获取 Post 对象。 ' 出现以下异常:

Cannot resolve keyword 'content_type' into field. Choices are: date_created, id, resource, resource_id, resource_type, resource_type_id, user, user_id



为什么要找 content_type当我明确命名它时 resource_type在我的 GenericForeignKey ?

最佳答案

我现在在文档中的任何地方都没有看到它,但是如果您查看 GenericRelation 的来源content_type_field有关键字和 object_id_field当你创建它时。因此,如果您将关系创建为 GenericRelation(object_id_field='resource_id', content_type_field='resource_type')那么它应该寻找合适的字段。

如果您有多个 GenericForeignKey's,我发现这尤其必要。在单个模型中,因此不能使用默认名称。

您可以在此处查看 1.11 的源代码:https://github.com/django/django/blob/stable/1.11.x/django/contrib/contenttypes/fields.py#L291

关于django - 无法将关键字 'content_type' 解析为字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39471889/

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