2017-01-31 2 views
1

Ich teste das CMS von Django und suche nach einer Möglichkeit, die Seiten einmal für alle Sprachen zu erstellen. Derzeit muss ich für jede Sprache eine neue Seite erstellen und der Inhalt/das Plugin/die Struktur wird nicht zwischen den verschiedenen Sprachen geteilt.Einmalige Seitenstruktur für alle Sprachen erstellen

Gibt es einen Weg, dies zu erreichen?

Vielen Dank im Voraus

Antwort

0

Der integrierte Management-Befehl ./manage.py cms copy lang kopiert die gesamte Seitenbaum von einer Sprache in eine andere. Der Seitenbaum bleibt unverändert und die Plugin-Bäume werden übertragen. Das ist in Ordnung, wenn Sie eine neue Sprache für die gesamte Website erstellen möchten.

Wenn Sie die Plugin-Bäume für nur eine Seite kopieren möchten, können Sie das Sprachmenü in der Symbolleiste verwenden: Language -> Copy all plugins, wenn Sie die Zielsprache sehen sind. Das ist in Ordnung, wenn Sie nur eine Seite haben.

Wenn Sie eine Sprache für einen Seitenbaum, dh eine Seite Bootstrap wollen und alle seine Kinder, dann entweder Sie haben eine Menge zu tun klicken, oder verwenden Sie diesen kurzen Management Befehl, den ich auf der Grundlage der ursprünglichen DjangoCMS erstellt ./manage.py cms copy long Befehl. Es erlaubt, eine Seite zu spezifizieren, um entweder durch seine Identifikation oder durch seinen Namen in der Quellsprache zu kopieren (Aufmerksamkeit: es muss einzigartig sein).

Kopieren Sie this snippet in einen beliebigen Befehlsordner Ihrer Anwendung: my_app/management/commands/. Sobald Sie die Datei kopiert haben, steht Ihnen ein neuer Django-Verwaltungsbefehl zur Verfügung: ./manage.py copylang. Anwendungsbeispiele:

./manage.py copylang --from-lang=en --to-lang=nl --tree="Home" 
./manage.py copylang --from-lang=en --to-lang=nl --tree_id=36 --force 

Die Seiten-ID für die --tree_id Option benötigt wird, kann leicht von der Seite Admin abgeleitet werden, indem man die Maus über das Symbol Vorschau Seite. Die Seiten-ID ist Teil der Link: .../Seite/PAGE_ID/lang/Vorschau/...

Wenn Sie die --tree auslassen und die --tree_id Optionen der Befehl an DjangoCMS des zufällt original cms copy lang Verhalten.