2009-08-11 10 views
10

So come utilizzare WMD e altri editor di javascript simili in normali forme django usando widget =. Tuttavia, come faccio a utilizzare WMD per i campi di testo nell'amministratore di Django? Inoltre, come lo uso per il campo contenuto su contrib.flatpages nell'admin?WMD in Django Admin?

Inoltre, penso che mi piacerebbe utilizzare il fork StackOverflow di WMD, quindi mi piacerebbe qualsiasi istruzione speciale per questo, se necessario.

So come utilizzare il filtro markdown nei modelli, in modo che la parte sia ok. Devo solo far visualizzare l'editor e lavorare nell'interfaccia di amministrazione.

risposta

5

Ho rinunciato a provare a utilizzare WMD. Invece, ho usato Markitup! Al momento di questa pubblicazione, la versione attuale di WMD non è all'altezza. La forcella StackOverflow è migliore, ma mancano molte funzionalità che desidero.

Invece, ho deciso di usare Markitup! Ha un'app riutilizzabile Django. Inoltre si integra molto bene con i filtri dei modelli django.contrib.markup esistenti.

django-markitup

Ho anche trovato un sito che mostra come usarlo per flatpages senza dover modificare i modelli di amministrazione.

extending admin forms in django

+1

Peccato, perché abbiamo creato django-wmd-editor: http://github.com/scrum8/django-wmd-editor –

+0

Non era fuori al momento in cui ne avevo bisogno. – Apreche

+2

Dead link jpartogi –

0

Questa non è una risposta diretta alla tua domanda, ma potrebbe essere d'aiuto.

Sembra essere abbastanza comune aggiungere l'editor TinyMCE WYSIWYG a django. Se cerchi istruzioni su come aggiungere TinyMCE all'amministratore di Django, potresti essere in grado di adattare il metodo per WMD.

Nel libro Practical Django Projects, Second Edition, l'autore incorpora TinyMCE nell'amministratore flatpages. Puoi scaricare il codice da Bitbucket repository e vedere come è fatto (guarda cms/templates/admin /). In alternativa, è possibile provare this guide sul sito Web Django.


+1 per la domanda. Vorrei anche scrivere flatpages in markdown. Tuttavia penso che il metodo migliore per l'utilizzo di Markdown è quello di

  1. hanno due campi, dicono content e content_html, e memorizzare il mark-down originale in content.
  2. Quando l'oggetto viene salvato, convertire il markdown in html e memorizzarlo in content_html.

Ciò significa che non si converte in html nel modello ogni volta che si visualizza la pagina. Tuttavia, non conosco un modo elegante per estendere contrib.flatpages aggiungendo un campo aggiuntivo.

+0

Oh wow, questa è un'idea davvero intelligente, con due campi. Ovviamente il campo HTML non sarebbe modificabile. Tuttavia, penso che potresti anche solo memorizzare nella cache il codice HTML convertito e ottenere quasi gli stessi vantaggi in termini di prestazioni. – Apreche

2

Per inserire WMD, o qualsiasi altro JS interessante, nelle pagine di Django Admin, seguire le istruzioni su come sovrascrivere i modelli di amministrazione nei documenti Django, a destra here - nel peggiore dei casi, copierete e modificate i modelli Django esistenti per aggiungere la funzionalità JS richiesta e utilizzare queste istruzioni per assicurarti che i tuoi modelli modificati siano utilizzati al posto di quelli predefiniti di Django, ma quasi sempre puoi fare meglio di così, come vedrai in queste istruzioni.