Создание docker-окружения для Django проекта

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

О преимуществах и недостатках такого подхода к разработке и развертыванию уже написано много статей, не вижу смысла повторяться. Сосредоточимся сразу на основной теме статьи: создание docker-окружения для разработки и запуска web-проекта, написанного на python. В качестве примера буду использовать мой последний проект на Django, но все написанное ниже на 95% подойдет к любому другому web-фреймворку на python, будь то Twisted, Flask или что-либо еще.

Read more...

Добавляем уникальное (unique) поле к существующей модели в Django

Добавление нового уникального поля к существующей модели Django (при условии, что оно не может быть пустым) не самая простая задача. В чем проблема? Представим, что мы создаем миграцию, в которой добавляем уникальное поле, скажем, uuid. Наша модель после изменений выглядит так:

import uuid
from django.db import models

class MyUUIDModel(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    # остальные поля

Создаем миграцию при помощи makemigrations и пробуем её применить. Что получается?

Read more...