Wagtail API - 如何公开片段

想象一下,我有一个Snippet和一个Page包含它:


@register_snippet

class MySnippet(models.Model):

    content = models.CharField(max_length=255)



class MyPage(Page):

    snippet = models.ForeignKey('MySnippet', null=True, blank=True, on_delete=models.SET_NULL, related_name='+')


    api_fields = [

        APIFiled('snippet')

    ]

现在在 wagtail API 页面端点中,此页面将如下所示:


{

    "id": 1,

    "meta": { ... },

    "snippet": {

        "id": 1,

        "meta": {

            "type": "my_module.MySnippet"

        }

    }

}

如何使此端点显示摘录的内容?


另外,如何仅为代码片段创建单独的API端点?


慕尼黑的夜晚无繁华
浏览 118回答 2
2回答

幕布斯7119047

这是我的做法,尽管在我的情况下,这是一个足够简单的表示from rest_framework import serializersclass MyPage(Page):    snippet = models.ForeignKey('MySnippet', null=True, blank=True, on_delete=models.SET_NULL, related_name='+')    api_fields = [        APIField('snippet', serializer=serializers.StringRelatedField(many=True))    ]您可以在代码段中添加一个“ str ”方法@register_snippetclass MySnippet(models.Model):    content = models.CharField(max_length=255)        def __str__(self):            return self.content
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python