Django и Python

Раздел про веб-разработку.
Делюсь знаниями и опытом.

97 0

Отображение русских символов в JSON полях админки Django

Часто в проектах использую JSON поля PostgreSQL.

При этом в админке Django они отображаются так как лежат в базе. Выглядит это примерно так:

{
    "1": "\u041f\u0435\u0440\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435",
    "2": "\u0412\u0442\u043e\u0440\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435"
}

Естественно это не по человечески и хотелось бы видеть в нормальном виде.

Для этого делаем следующее:

Читать далее
96 0

Django кастомная миграция с добавлением установочных данных

Иногда случаются ситуации когда данные в базе проекта уже есть и их надо связать с новой моделью, причем обязательной связью один ко многим.

Можно конечно временно обозначить связывающее поле ForeignKey как blank=True и заполнить после того как в новой модели появятся данные, а потом убрать blank=True.

Но это куча лишних действий и две миграции вместо одной.

Можно сделать тоже самое одной миграцией с добавлением в новую модель первой записи.

Для этого надо выполнить следующие шаги:

Читать далее
113 0

PostgreSQL: ERROR: invalid page header in block XXXXXX of relation base/XXXXX/XXXXX

На VDS одного из проектов который я поддерживаю и который крутится на моем хостере по умолчанию (firstvds) недавно произошел сбой.

Сбои на VDS сами по себе явления необычные, а тут прям все "колом встало". 

В результате разбора ситуации оказалось что сбойнула файловая система.

Файловую систему оживил но уперся в другую проблему. Postgres отказался запускаться и писал что-то типа:



Решение далее
120 0

Про кроссдоменную авторизацию для Django

Видео относительно старое но по сей день актуальное.

Возможно велосипед, но велосипед простой и понятный.


174 0

Mercurial ssl wrong version (_ssl.c:581)

При обновлении сайтов на Debian jessie, точнее при hg pull или hg push начал получать ошибку вида:

abort: error: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:581)

Проблема оказалась в том что bitbucket перестал поддерживать старые версии mercurial.

Поэтому для старых версий ОС решение простое и незамысловатое:

root$ pip install mercurial

Только не забудьте предварительно удалить старую версию.

358 0

Перелинковка статей с помощью виджета для django-summernote

В своих проектах в качестве редактора WYSIWYG использую удобный, встраиваемый в Django редактор summernote.

Встраивается он приложением django-summernote. Приложение поддерживает загрузку изображений через django в редактируемые тексты.

Но данный пост не об этом. 

Сегодня я расскажу как я реализовал удобную перелинковку статей этого блога с помощью виджета для summernote.

Читать далее
338 0

Добавляем reCAPTCHA к форме в проекте Django

Для фильтрации спамма в формах на сайте Гугл предоставил нам всем удобный инструмент reCAPTCHA.

Добрые люди из сообщества Django разработали приложение Django-recaptcha.

Поэтому у нас больше нет оправданий, чтобы не использовать удобную каптчу в своих проектах.

Шучу. Кому надо ставить reCaptcha читайте дальше

Читать далее
1862 8

Debian 8 + Python 3.5 + PostgreSQL + NGINX + virtualenv + Django

Время идет все меняется, вот уже вышла Django 1.9 и давно пора переходить на python 3.xx. 

В связи с этим представляю Вашему вниманию свою схему настройки сервера в конфигурации: Debian 8 + Python 3.5 + PostgreSQL + NGINX + virtualenv + Django 1.8

Данная схема проверена и используется мной в разработке проектов на серверах моего основного хостера FirstVDS.ru

---

Баннер с Джанго пони дает скидку на покупку сервера в 25%. 
Также есть промокод, но по условиям партнерской программы
я должен его распространять лично и оффлайн,
обращайтесь в комментариях.

 

Читать далее
1295 0

Выводим FormView и DetailView в одном шаблоне

Бывает необходимо объединить в одном шаблоне FormView и DetailView.

Порыв интернет нашел рабочее решение на stackoverflow.com

# forms.py
from django import forms
class MyForm(forms.ModelForm): class Meta: model ...
Читать далее
4946 2

Топ 10 python идиом, о которых я бы хотел узнать раньше

   Очередной мой перевод полезной статьи из pythondigest.ru. Читал как про себя, хотя я и не такой древний ;-)

   Итак далее текст David Taylor`a который зовет себя человеком эпохи Возрождения.

   - - - 

   Я програмирую всю свою жизнь, но никогда не работал программистом. Большая часть моих работ были сделаны на Visual Basic, потому что он был для меня наиболее комфортным, а также на некоторых других языках (R, C, JavaScript, и т.д. ... Pascal, AppleScript, гипертекст и другие, которые я узнал в 1979 году, если посмотреть достаточно далеко назад). 

Пару лет назад, я решил перейти на Python исключительно, чтобы улучшить свой код. И в результате я заново начал изобретать множество велосипедов ...

Читать далее

Контактные данные

 Россия, г. Москва
INFODATA