2015-12-10 29 views

Antwort

13

Der einfachste Weg, dies zu tun, ist sicherzustellen, dass RawHTMLBlock auf Ihrem StreamField aktiviert ist, und fügen Sie es dort ein. Der Prozess für Inhalte im Bereich hinzuzufügen, ist wie folgt:

import json 

original_html = '<p>Hello, world!</p>' 

# First, convert the html to json, with the appropriate block type 
raw_json = json.dumps([{'type': 'raw_html', 'value': original_html}]) 

# Load Wagtail page 
my_page = Page.objects.get(id=1) 
# Assuming the stream field is called 'body', 
# add the json string to the field 
my_page.body = raw_json 
my_page.save() 

Sie diesen Ansatz verwenden, können auch andere Arten von Blöcken zum StreamField hinzuzufügen - so stellen Sie sicher, dass Sie eine Liste der Wörterbücher mit dem entsprechenden Blocktyp erstellen, konvertieren es zu json und speichern.

+0

Beachten Sie, dass ab Wagtail 1.5 keine JSON-Zeichenfolge mehr verwendet werden muss, die aus einem Array von Wörterbüchern erstellt wurde. Sie können stattdessen ein Array von Tupeln direkt verwenden, so: 'my_page.body = [('raw_html', original_html)]' – CoreDumpError

Verwandte Themen