Cách đơn giản nhất để thêm trình soạn thảo WSYISWG vào bảng quản trị trên blog django là gì?Tôi làm cách nào để thêm trình soạn thảo WSYWYG vào quản trị viên Django?
Trả lời
Bạn có thể sử dụng TinyMCE qua django-TinyMCE:
http://code.google.com/p/django-tinymce/
Bạn có thể sử dụng TinyMCE trên tất cả các textfield đơn hoặc charfield trong admin, hoặc có thể chỉ cần thêm vào các lĩnh vực cụ thể.
Đối với trường hợp trước, bạn đặt mọi CharField hoặc TextField để sử dụng tinymce bằng cách sử dụng cài đặt mô hình quản trị formfield_overides. Vì vậy, trong admin.py của bạn:
formfield_overrides = {
models.TextField: {'widget': TinyMCE(attrs={'cols': 80, 'rows': 30})},
}
Để sau này bạn thay đổi tiện ích cho trường bạn muốn sử dụng tinymce. Vì vậy, trong forms.py của bạn:
class BlogForm(ModelForm):
body = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
và sau đó nói với các admin để sử dụng hình thức này (trong admin.py):
from models import Blog
from forms import BlogForm
class BlogAdmin(ModelAdmin):
form = BlogForm()
Bạn cần phải làm vài điều đơn giản (NicEdit WYSIWYG làm ví dụ) :
1) tải xuống trình chỉnh sửa cần thiết và lưu nó vào một số thư mục trong dự án của bạn, cho phép nói trong thư mục phương tiện;
2) trong urls.py thêm dòng tiếp theo:
import os
PROJECT_DIR = os.path.dirname(__file__)
urlpatterns = patterns('',
...,
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': PROJECT_DIR + r'/media/'}),
...,
)
3) tạo thư mục 'admin' trong thư mục mẫu và sao chép tập tin có base.py từ django/contrib/admin/templates/admin/cơ sở .py;
4) mở tập tin base.py và chỉnh sửa nó theo cách đó - 9 hàng đầu tiên không chạm gì cả, nhưng sau khi liên tiếp 9 thêm mã tiếp theo:
<script type="text/javascript" src="/media/nicedit/nicEdit.js"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function() {
nicEditors.allTextAreas({iconsPath : '/media/nicedit/nicEditorIcons.gif',
buttonList : ['fontSize','fontFamily','bold','italic',
'underline','strikeThrough','left','center','right','justify',
'ol','ul','subscript','superscript','hr','link','unlink','forecolor',
'image','upload','xhtml']
});
});
</script>
Đó là tất cả. Bây giờ trong bảng quản trị trong tất cả các textareas sẽ có sẵn WYSIWYG của bạn.
Tôi đã cố gắng triển khai giải pháp do Vitali Ponomar đưa ra.
tôi chọn NicEdit bởi vì nó chỉ là hai tập tin javascript (nicEdit.js
và nicEditorIcons.gif
) mà tôi đặt trong thư mục /media/js/
của tôi và không đòi hỏi phải thay đổi kiểu trường của tôi trong mô hình (tôi thấy trong TinyMCE Documentation mà đòi hỏi phải thay đổi lĩnh vực này sang loại HTMLField và tôi không muốn thay đổi bất kỳ thứ gì trong cơ sở dữ liệu).
tôi đặt trong mô hình:
class NewsAdmin(admin.ModelAdmin):
list_display = ('title','lead','date')
class Media:
js = ('/media/js/nicEdit.js', '/media/js/textarea_content.js')
admin.site.register(News, NewsAdmin)
File textarea_content.js
mà tôi đặt trong /media/js/
thư mục cũng được sử dụng để khởi tạo một textarea cụ thể với một số nút cụ thể là:
bkLib.onDomLoaded(function() {
nicEditors.editors.push(
new nicEditor({iconsPath : '/media/js/nicEditorIcons.gif',
buttonList : ['fontSize','fontFamily','bold','italic',
'underline','strikeThrough','left','center','right','justify',
'ol','ul','subscript','superscript','hr','link','unlink','forecolor']
}).panelInstance(
document.getElementById('id_content')
)
);
});
Tuy nhiên nếu bạn đang có kế hoạch sử dụng nó cho tất cả các textareas bạn có thể sử dụng bkLib.onDomLoaded(nicEditors.allTextAreas);
thay vì mã trên.
Cuối cùng, hãy cẩn thận với các quyền (khi tôi thử lần đầu tiên trong môi trường sản xuất, các tệp javascript của tôi cũng không có sẵn do quyền).
- 1. Làm cách nào để thêm trình nghe nhấp đúp vào trình soạn thảo GEF của tôi?
- 2. Sitecore: thêm tab mới vào trình soạn thảo nội dung
- 3. Chương trình soạn thảo S3DB
- 4. Làm cách nào để quản trị viên thêm nhà phát triển vào ứng dụng
- 5. Làm cách nào để tích hợp trình soạn thảo wysiwyg với các trang phẳng django?
- 6. django: cách thêm liên kết trang chủ vào quản trị
- 7. Quản trị viên web Sinatra (giống như Quản trị Django)
- 8. Thêm trang vào quản trị viên hoạt động
- 9. Làm cách nào để yêu cầu nội tuyến trong Quản trị viên Django?
- 10. Làm cách nào để đặt giá trị của trình soạn thảo CodeMirror bằng javascript?
- 11. Làm cách nào để tùy chỉnh trang Quản trị viên người dùng trong Django CRUD?
- 12. Làm cách nào để cho phép quản trị viên django đặt trường thành NULL?
- 13. Quản trị viên Django DoesNotExist tại/admin/
- 14. Cách đặt django upload_handler trong quản trị viên?
- 15. Trình soạn thảo SQL nhẹ cho Eclipse
- 16. Visual Studio 2010 - Trình soạn thảo C# cồng kềnh hơn trình soạn thảo VB.NET
- 17. Làm cách nào để vô hiệu hóa mô-đun quản trị viên Django Celery?
- 18. Trình soạn thảo XSD Eclipse
- 19. Cách tải trình soạn thảo ace
- 20. Thêm tập lệnh jQuery vào giao diện quản trị Django
- 21. Làm thế nào để điền vào trình soạn thảo tinymce-ray với capybara và selen?
- 22. Tôi làm cách nào để có được tên nhóm địa phương cho khách/quản trị viên?
- 23. SlickGrid chọn trình soạn thảo
- 24. Làm thế nào để thêm một chuỗi mới vào một tập tin * .po w/một trình soạn thảo PO
- 25. Trình soạn thảo WYSIWYG nhỏ, tùy chỉnh
- 26. Trình soạn thảo WADL trực quan
- 27. Thêm quyền cho mỗi đối tượng để django quản trị
- 28. Trình soạn thảo có chức năng Toán
- 29. Rails tốt 3 Trình soạn thảo WYSIWYG?
- 30. Tôi có thể sử dụng NetBeans với asp.net làm trình soạn thảo không?
Tôi tìm thấy điều này trên mạng: https://github.com/pydanny/django-wysiwyg. Có cái nào tốt không? – Adnan
Tôi đã không sử dụng nó nhưng tôi chắc chắn nó cũng làm công việc. –
tôi có tạo form.py vì hiện tại tôi không có? – Adnan