Django添加了微小的mce

时间:2011-01-05 09:37:17

标签: django

请建议添加tinymce到django管理区域的最佳方法。是否可以通过在我的模板目录中扩展/admin/change_form.html来添加它?

3 个答案:

答案 0 :(得分:6)

我认为最好的方式是django-tinymce

它非常易于集成到您的项目中,您还可以轻松添加django-filebrowser以进行图片上传。

答案 1 :(得分:2)

  1. 将tiny_mce.js库放在您的媒体文件夹中。例如,在js / tiny_mce /
  2. 然后(对于django 1.2),您需要在your_app / admin.py中创建自定义模型管理员。添加具有js属性的类Media。例如:

    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. 在media / js / admin / textareas.js中,您可以将您的呼叫添加到tinyMCE.init。例如:

    tinyMCE.init({
            mode : "textareas",
            theme : "advanced"
    });
    
  4. 就是这样。 Javascript自动包含在内。无需覆盖管理模板。

    注意:有一点我忘记提及在这种情况下它只适用于MyModel的管理员。如果您需要为所有模型提供相同的功能,只需将此自定义ModelAdmin注册到它们或将Media类添加到现有的ModelAdmin类中。

答案 2 :(得分:2)

django-tinymce是要走的路。您可以使用pip来安装它。您可以在模型字段中使用它,如下所示:

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!")

如果您使用South进行数据库迁移,则需要使用此行来帮助它:

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

像魅力一样!