Django Tastype属属关系

2024-10-03 09:07:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Django项目中有一些类似的模型:

class Link(BaseModel, BeginEndModel):
    entity0_content_type = models.ForeignKey(ContentType, related_name='link_from')
    entity0_object_id = models.PositiveIntegerField()
    entity0_content_object = generic.GenericForeignKey('entity0_content_type', 'entity0_object_id')

    entity1_content_type = models.ForeignKey(ContentType, related_name='link_to')
    entity1_object_id = models.PositiveIntegerField()
    entity1_content_object = generic.GenericForeignKey('entity1_content_type', 'entity1_object_id')

    link_type = models.ForeignKey(LinkType)

class Work(BaseModel, SluggedModel):
    """ Eser """
    name = models.CharField(max_length=255)
    links = generic.GenericRelation('Link', content_type_field='entity0_content_type', object_id_field='entity0_object_id')

我想用这样的tasype Api创建一个WorkResource:

^{pr2}$

当我想查看工时资源结果时,links属性总是空数组。 为什么我不能在2个资源之间建立关系?在

注意:我使用Django 1.6.5,Django tastypei0.11.1。我简化了我的模型.py以及api.py文件以上样品。如果需要,我可以分享我的全部代码。在


Tags: djangoname模型idobjectmodelstypelink
1条回答
网友
1楼 · 发布于 2024-10-03 09:07:54

这有点棘手,因为内容类型之间存在双向关系。我想这会有帮助:

class WorkResource( BaseModelResource ):
    links = fields.ToManyField('musiclibrary.api.LinkResource', attribute=lambda bundle: Link.objects.filter(entity0_content_type=ContentType.objects.get_for_model(bundle.obj), entity0_object_id=bundle.obj.id))

相关问题 更多 >