Так вышло, что последние 2 месяца я прохожу курс по алгоритмам на stepic.org от CSC ну и благодаря курсу я узнал много нового и вспомнил много того, чего забыл. Пока память свежа, решил опубликовать решение одной из задач... Читать далее...
В этом блоге я расскажу, как установить и настроить приложение flatpages для добавления статических страниц из админки сайта на django.
Друзяь, если Вы решили изучать Python/Django в нашей школе практического программирования, то советую вам добавить мой блог в закладки он вам очень пригодится, тут я записываю весь свой путь изучения django, вам будет легче пройти этот путь т.к. вы можете избежать многих трудностей!
Начнемс.
Открываем документацию по установке и настройке данного приложения на сайте djbook.ru
Видим, что первым делом нам нужно добавить в свой файл настроек settings.py несколько параметров.
В INSTALLED_APPS добавляем
В любом месте в файле settings.py вставляем этот параметр
SITE_ID = 1
Далее выполняем миграцию в базу данных. Я выполнял командой syncdb.
Если по каким либо причинам при миграции у вас выходят ошибки, как было в моем случае, то обновите версию django не ниже 1.7.10
Далее переходим в админку и видим, что добавились несколько разделов - это
Простые страницы
Сайты
Заходим в простые страницы и жмем добавить страницу. В открытом окне заполняем поля как на скриншоте
Тут все просто думаю разберетесь. Единственное, что в поле Sites вам нужно добавить свой сайт и указать параметр SITE_ID = 1 или SITE_ID = 2 если собираетесь использовать на нескольких сайтах.
Далее переходим в главный файл urls.py вашего проекта и там делаем ссылку на эту страницу.
По этому урлу ваша страница будет выводится.
Далее в папке templates создаем папку flatpages и в ней файл default.html
В файле default.html наследуемся от главного шаблона и пишем простые теги для вывода текста.
{% extends 'base.html' %}
{% block content %}
{{ flatpage.title }}
{{ flatpage.content }}
{% endblock %}
Все, теперь у вас будет работать статическая страница, которую вы добавили в админке сайта.
Еще больше информации о программировании на Python/Django можно найти в нашей школе, где я прохожу обучение сейчас.
Применение методов exclude и filter в Django на практике. Применяется для того, что бы сделать выборку записей отвечающих определённым требованиям, например начинается заголовок с определённого слова.
Для предоставления пользователю возможности создавать записи в базах данных прежде всего хочется себя обезопасить от хулиганства. Для этого, пользователь, добавляющий записи должен быть зарегистрирован на сайте. Хочется, чтобы регистрация осуществлялась в 1-2 клика и без ввода с клавиатуры. В этом нам может помочь регистрация пользователей через социальные сети.
Воспользуемся библиотекой django-allauth для организации авторизации через социальные сети. Установка библиотеки довольно подробно описана в документации. Единственная проблема, с которой я столкнулся при добавлении приложения - это то, что в этом проекте есть шаблон base.html, и если добавить это приложение до своих приложений и у вас есть тоже шаблон base.html, то возможно пересечение шаблонов. Я это обошел, переназвав свой шаблон в main.html. Читать далее...
Создание блога на Django 1.8. Шаг 2
Подключаем визуальный редактор (tinimce и ckeditor) к блогу на Django 1.8
http://youtu.be/wz95Gd6INWc
Сначала я подключил редактор tinymce, но не смог разобраться, как в нем сделать загрузку картинок на сервер.
Поэтому потом убрал его и подключил ckeditor (в котором эта возможность есть).
Сначала выполняем:
pip install django-tinymce
Добавляем 'tinymce' в settings.py
INSTALLED_APPS = (
...
'tinymce',
)
Потом в файле urls.py проекта добавляем строку url(r'^tinymce/', include('tinymce.urls')),
В models.py заменяем models.TextField на HTMLField
from tinymce.models import HTMLField
class Article(models.Model):
...
summary = HTMLField(blank=True, default='')
content = HTMLField(blank=True, default='')
Если зайти в админку, мы увидем чть tinymce заработал с настройками по умолчанию.
Теперь можно добавить больше функционала.
Добавляем этот код в settings.py
Редактор заработал (на локальном сервере).
На хостинге нужно будет запускать collectstatic и настраивать STATIC_ROOT
Картинки можно загружать вручную на сервер а потом прописывать путь.
Теперь отключу tinymce и подключу ckeditor
Для этого нужно выполнить pip install django-ckeditor
Добавить ckeditor и ckeditor_uploader в INSTALLED_APPS
В blog_project\urls.py добавим url(r'^ckeditor/', include('ckeditor_uploader.urls')),
from django.conf.urls.static import static
from blog_project import settings
urlpatterns = [
...
url(r'^ckeditor/', include('ckeditor_uploader.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Создаем каталог blog_project\media\uploads для загрузки файлов.
В models.py заменяем models.TextField на RichTextUploadingField
from ckeditor_uploader.fields import RichTextUploadingField
class Article(models.Model):
...
summary = RichTextUploadingField(blank=True, default='')
content = RichTextUploadingField(blank=True, default='')
Запускаем, на всякий случай, makemigration и migrate
Потом collectstatic, который копирует нужные файлы ckeditor-а в каталог static
Работает!
На следующем шаге загружу блог на хостинг.
Создание блога на Django 1.8. Шаг 1
Основная цель понять как использовать ForeignKey, ManyToManyField.
Задача реализовать веб приложение для выполнения задачи..
Легенда.
Диспетчеру механик подал данные, какие машины нужно обслужить
и что сделать(плановое ТО + дополнительное обуслуживание)
Реализовать интерфейс,
что бы была выполнима задача и можно было документировать.(выписат наряд)
Диспетчер ставит задачу технарю.
Условия приложения.
Диспетчер:
1. Выбирает станцию из списка. (список)
2. Выбирает услуги, которые необходимо совершить. (множественный выбор)
3. Назначает, кто её выполнит. (единичный или множественный выбор)
4 Марку авто. (1 авто из списка)
Домашнее задание,
1.вывести то , что в админке на страницы.
2. Нарисовать формы на операции.(пока не выполнять)
Всем привет! Ну вот, прослушал и проделал урок 48 в школе на spb-tut.ru. Добавил новую форму в практикум, соединил форму с моделью, теперь можно добавлять данные из формы в модель. Пока что сделал не безопасно и добавить данные в модель может кто угодно, но завтра или послезавтра эту "дырку" закрою. Выложил результаты практикума на github. Сам пример можно посмотреть на этой странице. Раньше писал информацию о коде на закладке "Код" практикумов, но теперь буду его отпралять на GitHub и давать ссылку на конкретные коммиты или просто на папки проекта. Читать далее...
Друзья, сегодня решил отправить свой проект на GitHub.
Во первых - контроль версий будет полезен мне.
Во вторых, все желающие смогут посмотреть мой исходный код и:
- что то взять себе как пример
- указать мне на мои ошибки
В третьих - при разборе примеров я смогу давать ссылки на файлы на GitHub...
Читать далее...