0

即使是反向关系,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')

是否可以保存通用外键的反向关系?如果是这样,那该怎么做?数据是什么样的?

4

1 回答 1

0

最后我得到了答案。

在具有content_typeand的资源中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')

希望这对其他人有帮助。

于 2014-01-08T15:01:35.780 回答