2011-01-05 15 views
2

Bitte schlagen Sie die beste Möglichkeit, um Tinymce Django Admin-Bereich hinzufügen. Ist es möglich, es hinzuzufügen, indem Sie /admin/change_form.html in meinem Vorlagenverzeichnis erweitern?Django Hinzufügen tiny-mce

Antwort

6

Der beste Weg ist meiner Meinung nach django-tinymce.

Seine genial und super einfach in Ihr Projekt zu integrieren, und Sie können django-filebrowser in leicht zum Hochladen von Bildern hinzufügen.

+0

Sie können nicht einfach in django-filebrowser hinzufügen, zumindest nicht ohne Grappelli zu installieren, das ist eine furchtbar große Änderung zu machen. –

+3

[django-filebrowser-no-grappelli] (https://github.com/wardi/django-filebrowser-no-grappelli) ist eine großartige Lösung, wenn Sie Grappelli nicht verwenden möchten, ich benutze Grappelli und das nicht ist was ich tue. – Kevin

+0

Hallo, vielen Dank für den Vorschlag, aber ich möchte es manuell tun, und vermeiden Sie Anwendungen, wie ich mehr über Django wissen werde, während es dabei .. in der Zwischenzeit habe ich YUI Admin-Bereich hinzugefügt;) wie es nicht benötigt jede URL schreibt um ... bitte sagen Sie mir den manuellen Weg, es zu integrieren. – Vamsi

2
  1. Legen Sie die tiny_mce.js-Bibliothek somehwere in Ihrem Medienordner ab. Zum Beispiel in js/tiny_mce/
  2. Dann (für django 1.2) müssen Sie einen benutzerdefinierten Modell-Admin in your_app/admin.py erstellen. Fügen Sie eine Klasse Media mit js-Attribut hinzu. Beispiel:

    from django.contrib import admin 
    from myapp.models import MyModel 
    
    class MyModelAdmin(admin.ModelAdmin): 
        class Media: 
         js = ('js/tiny_mce/tiny_mce.js', 
           'js/admin/textareas.js',) 
    
    admin.site.register(MyModel, MyModelAdmin) 
    
  3. In Medien/js/admin/textareas.js können Sie Ihren Anruf tinyMCE.init hinzufügen. Beispiel:

    tinyMCE.init({ 
         mode : "textareas", 
         theme : "advanced" 
    }); 
    

Das ist es. Javascript ist automatisch enthalten. Keine Notwendigkeit, Admin-Vorlagen zu überschreiben.

Hinweis: Eine Sache, die ich vergessen zu erwähnen, dass es in diesem Fall nur für den Administrator für MyModel gilt. Wenn Sie die gleiche Funktionalität für alle yout-Modelle benötigen, registrieren Sie einfach diesen benutzerdefinierten ModelAdmin oder fügen Sie Media classes zu vorhandenen ModelAdmin-Klassen hinzu.

2

django-tinymce ist der Weg zu gehen. Sie können pip verwenden, um es zu installieren. Sie verwenden es auf Modellfelder wie folgt:

from tinymce import models as tinymce_models 
class Foo(models.Model): 
    description = tinymce_models.HTMLField(blank=True, null=True, help_text="You can use HTML markup - be careful!") 

Wenn Sie Süd für DB-Migrationen verwenden Sie es mit dieser Linie helfen, müssen aus:

add_introspection_rules([], ["^tinymce.models.HTMLField"]) 

wirkt wie ein Zauber!

Verwandte Themen