加载Django admin TextField样式中的OpenXML内容

2024-09-24 02:19:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用django1.8管理接口来将文档文件加载到Django模型的字段中,并通过RedactorEditor插件启用。换句话说:允许用户使用Django管理员的textarea加载和修改一个简单的DOC文件。

到目前为止,我已经能够读取doc(使用oodocx),使用lxml将其转换为OpenXML字符串,并将该字符串存储在模型的文本类型字段中。你知道吗

此外,我可以使用RedactorEditor小部件加载该字段,并使用工具栏TinyMCE样式来修改加载的文档文件的内容。你知道吗

问题是我失去了所有的风格。一幅画胜过千言万语,它来了

我的原始word文件

enter image description here

Django admin字段中的字段外观

enter image description here

这是文本字段的内容,作为Unicode OpenXML字符串:

u'<w:body xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml"><w:p><w:pPr><w:pStyle w:val="Normal"/><w:jc w:val="center"/><w:rPr/></w:pPr><w:r><w:rPr/><w:t>Text text text text text text text</w:t></w:r></w:p><w:p><w:pPr><w:pStyle w:val="Normal"/><w:rPr/></w:pPr><w:r><w:rPr/></w:r></w:p><w:p><w:pPr><w:pStyle w:val="Normal"/><w:rPr><w:b/><w:b/><w:bCs/><w:color w:val="800000"/></w:rPr></w:pPr><w:r><w:rPr><w:b/><w:bCs/><w:color w:val="800000"/></w:rPr><w:t>RED TEXT RED TEXT RED TEXT RED TEXT</w:t></w:r></w:p><w:p><w:pPr><w:pStyle w:val="Normal"/><w:rPr/></w:pPr><w:r><w:rPr/></w:r></w:p><w:p><w:pPr><w:pStyle w:val="Normal"/><w:rPr/></w:pPr><w:r><w:rPr/></w:r></w:p><w:p><w:pPr><w:pStyle w:val="Normal"/><w:numPr><w:ilvl w:val="0"/><w:numId w:val="1"/></w:numPr><w:rPr/></w:pPr><w:r><w:rPr/><w:t>POINT 1</w:t></w:r></w:p><w:p><w:pPr><w:pStyle w:val="Normal"/><w:numPr><w:ilvl w:val="0"/><w:numId w:val="1"/></w:numPr><w:rPr/></w:pPr><w:r><w:rPr/><w:t>POINT 2</w:t></w:r></w:p><w:p><w:pPr><w:pStyle w:val="Normal"/><w:numPr><w:ilvl w:val="0"/><w:numId w:val="1"/></w:numPr><w:rPr/></w:pPr><w:r><w:rPr/><w:t>POINT 3</w:t></w:r></w:p><w:sectPr><w:type w:val="nextPage"/><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:left="1134" w:right="1134" w:header="0" w:top="1134" w:footer="0" w:bottom="1134" w:gutter="0"/><w:pgNumType w:fmt="decimal"/><w:formProt w:val="false"/><w:textDirection w:val="lrTb"/></w:sectPr></w:body>'

那么,如何让redactorjs Django小部件理解OpenXML格式并应用样式呢?我应该使用另一个不同的Javascript编辑器吗?试着写我自己的redactorJS插件?也许是另一种方法?


Tags: djangotextcomhttpvalschemasmicrosoftword
1条回答
网友
1楼 · 发布于 2024-09-24 02:19:49

解决方法:使用python-docx将DOC文件的OpenXML内容转换为HTML。之后,只需将HTML加载到redactorjs编辑器中

相关问题 更多 >