gpt4 book ai didi

python - _meta.get_all_field_names() 中的 GenericForeignKey 名称错误

转载 作者:行者123 更新时间:2023-12-01 05:42:57 24 4
gpt4 key购买 nike

我有两个模型:

class First(models.Model):
name = models.CharField(max_length=50, default='n/a')
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey()


def __unicode__(self):
return str(self.pk) + ' > ' + self.name


class Second(models.Model):
name = models.CharField(max_length=50, default='n/a')
r = generic.GenericRelation(First)

def __unicode__(self):
return str(self.pk) + ' > ' + self.name

当我这样做时:

from myapp.models import First
First._meta.get_all_field_names()

我得到:

['content_type', u'id', 'name', 'object_id', 'second']

所以看起来这里的 GenericForeignKey 不是 content_object,而是名为 second。这是预期的行为吗?

ps
我使用的是 Django 1.5.1。

最佳答案

GenericForeignKey 在幕后使用两个字段;在本例中,它们是 content_typeobject_id,因为 those are the default names第二个created by the GenericRelationSecond.r上。

关于python - _meta.get_all_field_names() 中的 GenericForeignKey 名称错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17028886/

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