想象一下,我有一个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
添加回答
举报
0/150
提交
取消