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')
是否可以保存通用外键的反向关系?如果是这样,那该怎么办?数据是什么样的?
答案 0 :(得分:0)
最后我得到了答案。
在具有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')
希望这会有所帮助。