"Django-tastypie中添加外键中的字段ToOneField"

2024-04-19 12:16:09 发布

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

当使用django tasypie时,有没有一种方法可以在资源url之外的相关对象中添加一个额外的字段?你知道吗

我有相册模型和照片模型。你知道吗

class Album(models.Model):
    title = models.CharField(_('Album Name'), max_length=250, default=_('Untitled Album'))

class Photo(models.Model):
    album = models.ForeignKey(Album)

我在api中有以下模型资源:

class PhotoResource(ModelResource):
    album = fields.ToOneField('ampwefly.apps.photos.api.AlbumResource', 'album')

class AlbumResource(ModelResource):
    photo = fields.ToManyField(PhotoResource, 'photo_set', related_name='photo', full=True) 

从目前的情况来看,当我访问一张照片的url时,我能够返回以下内容:

{
    album: "/api/v1/album/2/",
    description: "",
    id: "1",
    image: "/uploads/uploads/users/images/e-jey.jpg",
    resource_uri: "/api/v1/photo/1/",
    uploaded: "2012-11-22T22:42:26.051779"
}

如果我使用:

album = fields.ToOneField('ampwefly.apps.photos.api.AlbumResource', 'album', full=True)

这将返回相册的所有字段,但我想尝试的是除了返回资源url之外还返回标题,例如:

{
    album: {
        id: "2",
        resource_uri: "/api/v1/album/2/",
        title: "Untitled Album"
    },
    description: "",
    id: "1",
    image: "/uploads/uploads/users/images/e-jey.jpg",
    resource_uri: "/api/v1/photo/1/",
    uploaded: "2012-11-22T22:42:26.051779"
}

要得到上述结果,建议的解决方案是什么?你知道吗


Tags: 模型apiidurlfieldsalbummodels资源