为了账号安全,请及时绑定邮箱和手机立即绑定

Wagtail API - 如何公开片段

Wagtail API - 如何公开片段

慕尼黑的夜晚无繁华 2021-05-30 11:14:43
想象一下,我有一个Snippet和一个Page包含它:@register_snippetclass 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端点?
查看完整描述

2 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

这是我的做法,尽管在我的情况下,这是一个足够简单的表示


from rest_framework import serializers


class 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_snippet

class MySnippet(models.Model):

    content = models.CharField(max_length=255)


        def __str__(self):

            return self.content


查看完整回答
反对 回复 2021-06-01
  • 2 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信