Django 固定装置:通过 JSON 将 HTML 数据导入 TextField
Posted
技术标签:
【中文标题】Django 固定装置:通过 JSON 将 HTML 数据导入 TextField【英文标题】:Django fixtures: importing HTML data via JSON into a TextField 【发布时间】:2014-02-26 15:09:23 【问题描述】:我正在将我的网站从另一个内容管理系统切换到 Django,但我无法使用固定装置将 html 导入 Django,特别是使用“事件”,它是我的 Django 应用程序中的一个模型。模型如下:
class Event(models.Model):
event_name = models.CharField(max_length=100)
event_date = models.DateTimeField()
event_city = models.CharField(max_length=100)
event_province = models.CharField(max_length=100)
event_location = models.CharField(max_length=100, blank=True)
event_details = models.TextField(blank=True)
event_details
是包含指定事件详细信息的 HTML。使用 syncdb 导入数据时,我收到 DeserializationError: Problem installed fixture 'events.json': Invalid control character at: line 274 column 73 (char 7090)
这是我尝试导入的 json 示例:
"model": "events.Event",
"pk": 26,
"fields":
"event_name": "Random Event",
"event_date": "2008-09-06 00:00:00+00:00",
"event_city": "Toronto",
"event_province": "ON",
"additional_info": "data": "Promoter: Random Person Productions<BR>
Contact: John Doe: (555) 555-7777<BR>
Promoter Website: <A HREF="http://www.foo.com">www.foo.com</A>"
,
错误发生在“additional_info”第一行的第一个 BR 之后。我做错了什么?
问候。
【问题讨论】:
请注意,django 不是一个内容管理系统(你有 django-cms) 【参考方案1】:可能有两件事:
<A>
标记中的那些双引号。双引号是 JSON 中的字符串分隔符,所以当它们包含在 JSON 字符串 they should be escaped with a backslash 中时,像这样:
"data": "Promoter: Random Person Productions<BR>
Contact: John Doe: (555) 555-7777<BR>
Promoter Website: <A HREF=\"http://www.foo.com\">www.foo.com</A>"
HTML 中的换行符。 JSON strings also can’t contain newline characters,所以如果它们实际上在你的 JSON 中(而不是你在 Stack Overflow 上输入代码时为了可读性而放入的东西)并且你希望它们留在那里,你也需要转义它们:
"data": "Promoter: Random Person Productions<BR>\\nContact: John Doe: (555) 555-7777<BR>\\nPromoter Website: <A HREF=\"http://www.foo.com\">www.foo.com</A>"
【讨论】:
非常感谢。我都做了,错误消失了。 @user2368439:不客气!很高兴为您提供帮助。以上是关于Django 固定装置:通过 JSON 将 HTML 数据导入 TextField的主要内容,如果未能解决你的问题,请参考以下文章