Jaki jest najprostszy sposób dodania edytorów WSYISWG do panelu administracyjnego na blogu django?Jak dodać edytor WSYWYG do administratora Django?
Odpowiedz
Można używać TinyMCE pośrednictwem Django TinyMCE:
http://code.google.com/p/django-tinymce/
Można użyć TinyMCE na każdym polu tekstowym lub Charfield w admin, lub można po prostu dodać do poszczególnych dziedzin.
W przypadku pierwszego z nich należy ustawić każdy CharField lub TextField, aby użyć tinymce, korzystając z ustawień modelu administratora admina formfield_overides. Tak więc w twoim admin.py:
formfield_overrides = {
models.TextField: {'widget': TinyMCE(attrs={'cols': 80, 'rows': 30})},
}
Dla tego ostatniego zmieniasz widżet dla pola, w którym chcesz używać tinymce. Więc w forms.py:
class BlogForm(ModelForm):
body = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
a następnie poinformować administratora, by skorzystać z tego formularza (w admin.py):
from models import Blog
from forms import BlogForm
class BlogAdmin(ModelAdmin):
form = BlogForm()
Trzeba zrobić kilka prostych rzeczy (jak np NicEdit WYSIWYG) :
1) pobierz potrzebny edytor i zapisz go w jakimś folderze w projekcie, powiedzmy w folderze mediów;
2) w urls.py dodać następujące wiersze:
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) utworzyć folderu 'admin' w folderze szablonów i skopiować tam plik base.py z django/contrib/admin/szablony/admin/podstawy .py;
4) otwarty plik base.py i edytować go w ten sposób - pierwsze 9 wierszy nie dotykają w ogóle, ale po 9 rzędzie dodać kolejny kod:
<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>
To wszystko. Teraz w panelu administracyjnym we wszystkich tekstach będzie dostępny WYSIWYG.
Próbowałem wdrożyć rozwiązanie podane przez Vitali Ponomar.
wybiorę NicEdit ponieważ były tylko dwa pliki JavaScript (nicEdit.js
i nicEditorIcons.gif
), które mogę umieścić w moim folderze /media/js/
i nie wymaga, aby zmienić moje typy pól w modelu (widziałem w TinyMCE Documentation, który wymaga, aby zmienić pole do typu HTMLField i nie chciałem niczego zmieniać w bazie danych).
umieścić w modelu
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)
Plik textarea_content.js
że mogę umieścić w /media/js/
folderze również służy do zainicjowania specyficznej textarea z pewnych konkretnych przycisków jest:
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')
)
);
});
Jednak jeśli planujemy użyć go do wszystkich tekstów, można użyć zamiast tego powyższego kodu pod numer bkLib.onDomLoaded(nicEditors.allTextAreas);
.
Wreszcie, bądź ostrożny z uprawnieniami (kiedy próbowałem po raz pierwszy w środowisku produkcyjnym moje pliki javascript nie były dostępne z powodu uprawnień).
- 1. django: jak dodać link domowy do administratora
- 2. Jak dodać sekcję raportu do administratora Django?
- 3. Jak dodać niestandardowy wbudowany widget administratora w Django?
- 4. Jak dodać niestandardowy javascript do administratora WordPress?
- 5. Dostosowywanie administratora django do zależnych pól wyboru
- 6. Dodawanie skryptu jQuery do interfejsu administratora Django
- 7. Dodaj niestandardowe działanie administratora Django
- 8. Jak dodać pole obliczeniowe do modelu Django
- 9. Nie można się zalogować do administratora Django
- 10. DevExpress Xtragrid jak dodać edytor combobox kolumnie
- 11. Administrator Django - Jak dodać zielony znak plusa dla pola Wiele do wielu w niestandardowym formularzu administratora
- 12. Filtr administratora Django za pomocą metody
- 13. Pośrednie inline w Django administratora
- 14. Wyświetlanie model's__unicode__ w Django administratora
- 15. Strona administratora Django Usuwanie 'Group'
- 16. Jak dodać niestandardowy arkusz stylów CSS do administratora Umbraco
- 17. Jak dodać użytkownika administratora do Mongo w wersji 2.6?
- 18. Limit kwerendy wbudowanego administratora django
- 19. Jak zmienić loga administratora wagonu django
- 20. Jak dodać przycisk do kontekstu "submit_row" w django
- 21. Dodaj niestandardową akcję do obiektu wbudowanego Django w interfejsie administratora
- 22. Wyświetlaj wiersze potomne w interfejsie administratora Django
- 23. Jak dodać "klasę" do ChoiceField w Django?
- 24. Jak dodać atrybuty do znaczników opcji w django?
- 25. Django - wielokrotne plurowanie w modelu administratora
- 26. Edycja interfejsu administratora Ustawienia aplikacji Django
- 27. Zastąp domyślny queryset w Django administratora
- 28. Niestandardowy widok Django na stronę administratora
- 29. zastępowanie administratora django change_list_results.html dla modelu
- 30. Domyślna akcja administratora "usuń zaznaczone" w Django
Znalazłem to w Internecie: https://github.com/pydanny/django-wysiwyg. Czy to jest dobre? – Adnan
Nie użyłem tego, ale jestem pewien, że to również robi pracę. –
czy utworzyć forms.py, ponieważ obecnie nie mam? – Adnan