请建议添加tinymce到django管理区域的最佳方法。是否可以通过在我的模板目录中扩展/admin/change_form.html来添加它?
答案 0 :(得分:6)
我认为最好的方式是django-tinymce。
它非常易于集成到您的项目中,您还可以轻松添加django-filebrowser以进行图片上传。
答案 1 :(得分: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)
在media / js / admin / textareas.js中,您可以将您的呼叫添加到tinyMCE.init。例如:
tinyMCE.init({ mode : "textareas", theme : "advanced" });
就是这样。 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"])
像魅力一样!