我有两个模型: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.nameclass 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 FirstFirst._meta.get_all_field_names()我得到:['content_type', u'id', 'name', 'object_id', 'second']因此,似乎而不是content_object,GenericForeignKey命名为second。这是预期的行为吗?
2 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
A在幕后GenericForeignKey
使用了两个字段;在这种情况下,它们是content_type
,object_id
因为这些是默认名称。second
是由创建GenericRelation
上Second.r
。
添加回答
举报
0/150
提交
取消