Ich mache eine Migration von einer alten Website, und ich muss programmgesteuert Roh HTML zu einem StreamField
auf einer Bachstelze Seite hinzufügen. Wie mache ich es?Wie kann ich programmatisch Inhalte zu einer Bachstelzen-StreamField hinzufügen?
8
A
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.
Verwandte Themen
- 1. Wie kann ich einen Kontakt programmatisch hinzufügen?
- 2. Wie kann ich programmatisch Bilder zu einem Drupal-Knoten hinzufügen?
- 3. Kann ich mit MEF Inhalte zu einem vs2010-Kontextmenü hinzufügen?
- 4. Rand zu einer programmatisch hinzugefügten Ansicht hinzufügen
- 5. Facebook: Kann ich programmatisch einen Freund hinzufügen?
- 6. Wie kann ich Inhalte speichern?
- 7. Wie programmatisch einen Job zu einer Ansicht in Hudson hinzufügen
- 8. Wie programmiere ich eine Datei programmatisch zu einer Lösung?
- 9. Wie NSLayoutConstraints programmatisch hinzufügen
- 10. Wie kann ich dynamische Inhalte von einer Webseite analysieren?
- 11. EpiServer - Hinzufügen Block zu einem Inhaltsbereich programmatisch
- 12. Wie kann ich Inhalte in einer Staubvorlage ausblenden und anzeigen?
- 13. Hinzufügen einer Kopfzeile zu den UITableView programmatisch mit Swift 2.2
- 14. Wie greife ich auf ng-Inhalte zu?
- 15. Wie programmatisch eine Schaltfläche hinzufügen?
- 16. hinzufügen Layout-programmatisch in einer anderen einem
- 17. Wie kann ich Lösungsordner-Dateien zu einer VS-Projektvorlage hinzufügen?
- 18. Wie kann ich ein onmouseover-Ereignis zu einer Zeile hinzufügen?
- 19. Wie kann ich Zeilen zu einer Listenansicht asynchron hinzufügen?
- 20. Wie kann ich einen Benutzer-Interrupt zu einer Endlosschleife hinzufügen?
- 21. Magento - Wie kann ich Bewertungsinformationen zu einer Bewertung hinzufügen?
- 22. Wie kann ich XElements dynamisch zu einer XML-Datei hinzufügen?
- 23. Wie kann ich eine Zusammenfassungszeile zu einer Drupal View hinzufügen?
- 24. Wie kann ich einen Decorator zu einer bestehenden Objektmethode hinzufügen?
- 25. Wie kann ich mehrere UIBarButtonItems zu einer UINavigationBar hinzufügen?
- 26. Wie kann ich benutzerdefinierte Eingaben zu einer SQL-Anweisung hinzufügen?
- 27. Wie kann ich einen Standardwert zu einer RadComboBox hinzufügen?
- 28. Wie kann ich eine Spalte zu einer vorhandenen Tabelle hinzufügen?
- 29. Wie kann ich eine Linie zu einer der Facetten hinzufügen?
- 30. Wie kann ich die API einer Klasse programmatisch melden?
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