Django中如何将HTML数据存入QuillField?遇‘can't parse value’错误
解决Django QuillField保存HTML时的"can't parse value"错误
QuillField(通常来自django-quill-editor)不直接存储HTML字符串,它的存储格式是Quill编辑器的Delta JSON结构,直接赋值HTML会触发解析错误。正确做法是先把HTML转换为Delta格式再保存:
- 安装HTML转Delta的工具库
pip install html2delta
- 在视图中完成转换并保存
from html2delta import convert from yourapp.models import Product product = Product.objects.get(id=...) # 将HTML字符串转换为Delta格式字典 delta_data = convert('<p> this is a test </p>') # 赋值给字段并保存 product.description = delta_data product.save()
如果需要手动构造简单的Delta内容(无需转换复杂HTML),也可以直接传入符合格式的字典:
product.description = { "ops": [ {"insert": " this is a test "}, {"insert": "\n"} ] } product.save()
注意:QuillField在模板渲染时会自动将Delta转换为HTML,读取数据时无需额外处理。
内容的提问来源于stack exchange,提问作者MichaelS
相关产品推荐
相关产品推荐

