Django Tastypie可以保存相关对象,即使有反向关系。
但是Django Tastypie能够保存GenericForeignKeyField的反向关系吗?
我的资源(不是满的,但只有重要的),
class AreaResource(ModelResource):
tripl3user = fields.ManyToManyField(
'tripl3sales.api.resources.area.Tripl3UserResource',
'tripl3user',
related_name='area',
full=True
)
class Tripl3UserResource(ModelResource):
content_type = fields.ForeignKey(
'tripl3sales.api.resources.contenttype.ContentTypeResource',
'content_type'
)
content_object = GenericForeignKeyField({
Area : AreaResource
}, 'content_object')
我的models.py
,
class Area(models.Model):
name = models.CharField(max_length=50, unique=True)
tripl3user = generic.GenericRelation('Tripl3User')
class Tripl3User(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
是否可以保存泛型外键的反向关系?如果是这样,那该怎么做?数据是什么样的?
终于我得到了答案。
在具有 content_type
和 object_id
的资源中,没有必要声明content_type
content_object
就足够了。对于related_name,我们不使用 area
,我们使用 content_object
.
所以,我 resources.py 应该是,
class AreaResource(ModelResource):
tripl3user = fields.ManyToManyField(
'tripl3sales.api.resources.area.Tripl3UserResource',
'tripl3user',
related_name='content_object',
full=True
)
class Tripl3UserResource(ModelResource):
content_object = GenericForeignKeyField({
Area : AreaResource
}, 'content_object')
希望这对其他人有所帮助。