Django
1
Вклад в тег
INSTALLED_APPS = (
................. ,
'ckeditor',
)
import os
, если вдруг у Вас не задано, пропишите путь базовой директории BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
, но если у Вас прописано значение по-другому - советую эту (существующую) строчку не трогать, а просто под ней добавить еще одну, назвав не BASE_DIR, а по-другому (например: _PATH).MEDIA_ROOT = os.path.join(BASE_DIR, 'static', 'media')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/statics/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'statics'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
CKEDITOR_UPLOAD_PATH = "uploads/"
CKEDITOR_IMAGE_BACKEND = "pillow"
CKEDITOR_JQUERY_URL = '//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'
# CKEDITOR_CONFIGS по сути необязательны. Они влияют на тулбар редактора. Если выключите - будет очень мало инструментов для работы с текстом. После полной настройки - попробуйте с ними поиграться. Возможно найдете для себя какой-то более оптимальный вариант настроек!
CKEDITOR_CONFIGS = {
"default": {
"removePlugins": "stylesheetparser",
'allowedContent': True,
'toolbar_Full': [
['Styles', 'Format', 'Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'RemoveFormat' ],
['Image', 'Flash', 'Table', 'HorizontalRule'],
['TextColor', 'BGColor'],
['Smiley','sourcearea', 'SpecialChar'],
[ 'Link', 'Unlink', 'Anchor' ],
[ 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote', 'CreateDiv', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', '-', 'BidiLtr', 'BidiRtl', 'Language' ],
[ 'Source', '-', 'Save', 'NewPage', 'Preview', 'Print', '-', 'Templates' ],
[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],
[ 'Find', 'Replace', '-', 'SelectAll', '-', 'Scayt' ],
[ 'Maximize', 'ShowBlocks' ]
],
}
}
............. ,
url(r'^ckeditor/', include('ckeditor.urls')),
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
from ckeditor.fields import RichTextField
title_story = RichTextField(max_length=255, verbose_name="Название")
anons = RichTextField(max_length=1000, null=True, blank=True, verbose_name="Анонс")
story = RichTextField(verbose_name="Полная статья")
... ну и так далее ....
from django import template
from blog.models import RightSidebarWidgets #Импортируем нужные нам модели.
# экземпляр класса, в котором все наши теги будут зарегистрированы
register = template.Library()
# регистрируем наш тег, который будет выводить шаблон right_sidebar.html
@register.inclusion_tag("blog/right_sidebar.html") #В кавычках вводите путь до шаблона! он может быть у каждого свой!
# Создаем сам тег!
def show_sidebar():
widgets = RightSidebarWidgets.objects.all() # Делаем выборку из БД
return {'widgets': widgets} # Возвращаем контекст
python manage.py shell
>>> from myapp.templatetags import myapp_tags