Параметры полей и моделей.

Для того, чтобы наша административная панель Django выглядела более понятна для обычного пользователя необходимо указать правильные названия полей.

Наша созданная модель представляется непонятной аббревиатурой “Bbs”, а не простым и ясным текстом “Объявления”. Откроем модуль “models.py” пакета приложения “btest”. В написанный код необходимо ввести несколько поправок:

from django.db import models

class Bb(models.Model):
  title = models.CharField(max_length=50, verbose_name='Товар')
  content = models.TextField(null=True, blank=True, verbose_name='Описание')
  price = models.FloatField(null=True, blank=True, verbose_name='Цена')
  published = models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Опубликовано')
  
  class Meta:
    verbose_name_plural = 'Объявления'
    verbose_name = 'Объявление'
    ordering = ['-published']

В вызове каждого конструктора класса поля мы добавили именованный параметр verbose_name. Он указывает “человеческое” название поля, которое будет выводится на экран.

Далее, в классе модели мы объявили вложенный класс “Meta”, а в нём – атрибуты класса, которые зададут параметры уже самой модели:

  • verbose_name_plural – название модели во множественном числе;
  • verbose_name – название модели в единственном числе;
  • ordering – последовательность полей, по которым по умолчанию будет выполняться сортировка записей.

После исправления кода сохраните его. Теперь можно исправить код контроллера index(). Он объявлен в модуле views.py пакета приложения, убрав из выражения, извлекающего список записей, указание сортировки:

from .models import Bb
from django.shortcuts import render
 
def index(request):
    bbs = Bb.objects.all()
    return render(request, "btest/index.html", {'bbs': bbs})

Сохраним код и запустим отладочный web-сервер. Зайдем по ссылке “http://localhost:8000/admin” и проверим наши исправления:


Параметры полей и моделей.


Параметры полей и моделей.


Параметры полей и моделей.

Все получилось, но на странице списка записей все позиции представляются строками вида “имя класса модели object значение ключа”, из которых невозможно понять, что же хранится в каждой из этих записей.

Данную проблему можно исправить в модуле административных настроек “admin.py” пакета приложения. Откроем его и заменим имеющийся в нем код:

from django.contrib import admin
from .models import Bb

class BbAdmin(admin.ModelAdmin):
  list_display = ('title', 'content', 'price', 'published')
  list_display_links = ('title', 'content')
  search_fields = ('title', 'content', 'price', 'published')

admin.site.register(Bb, BbAdmin)

Редактор BbAdmin объявляется как подкласс класса ModelAdmin из модуля django.contrib.admin. Он содержит набор атрибутов класса, которые и задают параметры представления модели. Мы используем следующие атрибуты класса:

  • list_display – последовательность имен полей, которые должны выводиться в списке записей;
  • list_display_links – последовательность имен полей, которые должны быть преобразованы в гиперссылки, ведущие на страницу правки записей;
  • search_fields – последовательность имен полей, по которым должна выполняться фильтрация.

Запустим отладочный web-сервер или обновим страницу в браузере если он уже запущен и перейдем на страницу списка записей модели Bb:


Параметры полей и моделей.

Все объявления удачно отобразились и поиск по объявлениям работает.

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Связи между моделями.

Связи между моделями.

В нашем проекте есть одна модель под названием “Объявления”. В этой статье мы создадим новый класс модели “Rubric”, которая будет представлять рубрики объявлений. Допишем в

 
Административный web-сайт Django.

Административный web-сайт Django.

Административный web-сайт предоставляет доступ ко всем моделям, объявленным во всех приложениях, что составляют проект. С помощью данной панели можно просматривать, добавлять, править и удалять записи,

 
Создание и использование шаблонов в Django.

Создание и использование шаблонов в Django.

Шаблоны (template) отвечают за формирование внешнего вида приложения. Они предоставляют специальный синтаксис, который позволяет внедрять данные в код HTML. Подсистема Django, называется шаблонизатором, загружает шаблон,

 
Модели и миграции в Django.

Модели и миграции в Django.

Модели Модель – это однозначное и исчерпывающее описание сущности, хранящейся в базе данных в виде класса Python. Класс модели описывает таблицу базы данных, в которой

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: