Посты с тэгом model


Django standalone models


Добрый день, хабравчане.

Совсем недавно я вдруг открыл для себя всю мощь моделей и форм Django.

Архитектура Django — это Model-View-Template (MVT). Модель отображает данные в базе, вид выполняет код приложения, шаблон занимается выводом. Часть этой тройки — Template, шаблоны — можно использовать отдельно от Django вообще — загружать шаблон и рендерить его с учётом контекста. Об этом говорится в документации.

Однако в документации не говорится, что ещё одна часть — Model — также вполне самостоятельна, и даже более того — её использование вкупе с формами в правильных случаях сильно упрощает жизнь разработчику и делает код простым и понятным.

Читать дальше →


Django Framework / [Ссылка] История валидации на уровне модели

Моим пятым переводом c DjangoAdvent.com стала статья Хонзы Крала «History of model validation». Исходя из названия можно догадаться, что речь пойдёт об истории валидации на уровне модели.

Оригинал: http://djangoadvent.com/1.2/history-model-validation/

Предыдущие переводы:
http://habr.ru/p/108389/ — Естественные ключи.
http://habr.ru/p/107035/ — Права доступа к объекту.
http://habr.ru/p/103896/ — Mingus: за что я его ненавижу.
http://habr.ru/p/113439/ ― Усовершенствование шаблонов Django.



Создание моделей

Немного теории

Модель в Django это описание сущностей приложения при помощи специального синтаксиса, например у нас может быть сущность пользователь с полями логин, пароль, адрес электропочты, дата рождения и сущность запись в блоге с полями заголовок, содержание и ссылкой на пользователя, который опубликовал запись. Модель описывается как класс, унаследованный от Model, поля объекта описываются путем присвоения значений из класса Model, каждое из значений означает один из допустимых типов полей. Для примера опишем указанные выше сущности:
        #сущность пользователь
 class User (models.Model):
  login = models.CharField(max_length=50)
  password = models.CharField(max_length=50)
  email = models.EmailField()
  age = models.DateField()
  
 #сущность запись в блоге
 class Post (models.Model):
  title = models.CharField(max_length=100)
  body = models.TextField()
  poster = models.ForeignKey('User')
Рассмотрим что же мы написали. Запись вида