錯誤:RichText 型別的物件不可 JSON 序列化。
我的代碼:
class AvvisiBlock(blocks.StructBlock):
avvisi = blocks.ListBlock(
blocks.StructBlock(
[
("title", blocks.CharBlock(classname="full title", icon="title", required=True)),
("text", blocks.RichTextBlock(icon="pilcrow", required=True)),
]
)
)
def get_api_representation(self, value, context=None):
dict_list = []
for item in value["avvisi"]:
print(item)
temp_dict = {
'title': item.get("title"),
'text': item.get("text"),
}
dict_list.append(temp_dict)
return dict_list
專案價值:
StructValue([('title', 'avvisi importanti 1'), ('text', <wagtail.core.rich_text.RichText object at 0x000001F73FCDE988>)])
如何序列化物件?
uj5u.com熱心網友回復:
正如 Wagtail 的富文本內部檔案中所述,富文本有兩種可能的表示形式——“符號”源表示,它通過 ID 跟蹤頁面鏈接和其他專案,例如影像,以及呈現的 HTML 版本(通過URL,如您所料)。
如果您希望 API 回傳呈現的 HTML,請使用:
temp_dict = {
'title': item.get("title"),
'text': str(item.get("text")),
}
或者,如果您希望它回傳符號源:
temp_dict = {
'title': item.get("title"),
'text': item.get("text").source,
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/340999.html
