假设我有一个包含以下字段的模型:
class SomePage(Page):
other_fields = ...
field_en = models.CharField(max_length=280, blank=False, null=False)
field_de = models.CharField(max_length=280, blank=False, null=False)
field_zh = models.CharField(max_length=280, blank=False, null=False)
每个_lang
都被翻译成某种语言的字段。 (他们的电话号码是事先知道的,因为它们将来不太可能更改)
当我使用Wagtail的REST API时,响应会包括所有字段,并且我必须开始手动排除字段:
{
<other fields>: ...
"field_en": ...
"field_de": ...
"field_zh": ...
}
因此,可以通过排除不想要的字段来解决此问题,但是理想情况下,我希望使用?lang=en
参数来请求它们,并获得更简洁的答复,例如:
{
<other fields>: ...
"field": ... // This is actually field_en!
}
这样我的前端或任何其他客户端不必实现field_<lang>
逻辑。
作为旁注-页面中的内置字段title
也可能会被翻译,这意味着将有title
,title_de
和title_zh
,这可能需要一些额外的逻辑。
我在BaseEndpoint
中进行了挖掘,并且能够创建一个类以在子类化时生成_lang
特定的终结点,但是它将返回field_<lang>
而不是field
以及有点丑陋(必须每种语言对它进行子类化并分别注册一次,好吧)
感谢任何帮助或指针:)