Модели

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

Типы полей: 2.2 eng | 1.9 rus

Пример blog/models.py

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=150, db_index=True)
    slug = models.SlugField(max_length=150, unique=True)
    body = models.TextField(blank=True, db_index=True)
    date_pub = models.DateTimeField(auto_now_add=True)

    # специальный метод для вывода в консоль конкретного экземляра класса
    # вместо адреса объекта. Метод _str_ отвечает за вывод информации объекте
    def __str__(self):
        return self.title

Создание файла миграции

./manage.py makemigrations

Применение миграции к базе данных

./manage.py migrate

Редактирование views

blog/views.py

from django.shortcuts import render
from .models import Post # импортировать модель

def posts_lis(request):
  vars = Post.objects.all() # обращение к менеджеру модели
  return render(request, 'blog/index.html) context={'posts': posts} # ключ posts принимает значение переменной posts

Объекты можно добавить через консоль

Редактирование индексного шаблона

Обработка списка объектов в цикле

blog/templates/blog/index.html

{% extends 'appname/base_appname.html' %}

{% block title %}
  Classnames Title
{% endblock %}

{% block content %}
  {% for post in posts %}
    <h1>
      {{ post.title }} # обращение к атрибуту экзапляра класса
    </h1>
    <p>
      {{ post.body|truncatewords:15}} # фильтр шаблона
    </p>
    <p>
      { post.date_pub }}
    </p>
  {% endfor %}
{% endblock %}

Подробнее про фильтры шаблона

Last updated