2010-10-14 20 views
7

Tôi đã thiết lập TinyMCE để làm việc với bảng điều khiển quản trị (theo các hướng dẫn trong Django Documents http://code.djangoproject.com/wiki/AddWYSIWYGEditor)Django Admin: Thêm TinyMCE vào TextField cụ thể chỉ?

Vấn đề là tôi có inlines và các khu vực văn bản khác trong mô hình của tôi mà tôi không muốn TinyMCE để hiển thị

Có ai biết cách đặt TinyMCE chỉ để tải cho các trường cụ thể trong mô hình của tôi không?

Cảm ơn

EDIT Ok, vì vậy tôi đã cài đặt django-TinyMCE và cấu hình nó

tôi đã tạo ra sau trong admin.py của mô hình với các lĩnh vực Tôi muốn thêm TinyMCE để:

class FooAdminForm(forms.ModelForm): 
    class Meta: 
     model = Foo 

    def __init__(self, *args, **kwards): 
     self.bar = forms.TextField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30})) 
     super(FooAdminForm, self).__init__(*args, **kwargs) 

Thật không may này vẫn không hoạt động

Trả lời

9

Đúng vậy, nếu có ai đang tìm cách để làm điều này (và là như tránh khỏi thất bại như tôi!)

Đầu tiên chắc chắn rằng các thiết lập TinyMCE là chính xác (tôi bỏ qua này!)

TINYMCE_JS_ROOT = '/media/tiny_mce/' 
TINYMCE_JS_URL = os.path.join(MEDIA_URL, "tiny_mce/tiny_mce_src.js") 
TINYMCE_DEFAULT_CONFIG = { 
    'plugins': "table,spellchecker,paste,searchreplace", 
    'theme': "advanced", 
} 
TINYMCE_SPELLCHECKER = True 

Sau đó, trong admins.py của mô hình của bạn

from django.forms import * 
from django.db.models import * 
from tinymce.widgets import TinyMCE 

class ProductionForm(forms.ModelForm): 
    some_field = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10})) 

    class Meta: 
     model = Production 

class ProductionAdmin(admin.ModelAdmin): 
    form = ProductionForm 
5

Tha Trang wiki là khoảng năm tuổi (!) và những ngày này có một cách dễ dàng hơn để tích hợp TinyMCE, đơn giản bằng cách sử dụng dự án django-tinymce.

Tuy nhiên, vì bạn đã thực hiện theo cách này, bạn có thể đạt được những gì bạn muốn với một thay đổi đơn giản đối với tập lệnh textareas.js. Phương pháp được mô tả tại liên kết của bạn sử dụng mode: textareas, khi bạn lưu ý chuyển đổi tất cả các văn bản tự động. Những gì bạn muốn điều này là:

mode: "exact", 
element: "id_mytextarea", 

nơi "id_mytextarea" là ID HTML của lĩnh vực bạn muốn chuyển đổi - thường là tên của lĩnh vực mô hình bắt đầu bằng "id_". Xem số TinyMCE documentation.

+0

haha, tôi thực sự đã sử dụng django-docs (không kiểm tra ngày) vì tôi cho rằng chúng đáng tin cậy hơn. Tôi đã cài đặt django-tinymce bây giờ. Tôi cần ghi đè lên mẫu biểu mẫu quản trị viên và ghi đè lên trường tôi muốn sử dụng tiện ích TinyMCE? –