Работа с моделями в Django для новичков

 
+1
 
Python
Легенда: Пользователи обращаются в службу поддержки. Все обращения пользователей фиксируются операторами. У всех полей обращений должны быть понятные русские заголовки. У всех обращений должны быть уникальные номера. Обращения у операторов должны отображаться в порядке убывания даты поступления. Обращения делятся на 3 типа: консультация, ошибка и пожелание. Оператор может указать суть обращения в теме, если она понятна и не указывать описание.

Выполненные изменения в модели:
  •  для всех полей добавил понятные заголовки с помощью свойства verbose_name
  •  добавил в поле number признак unique=True, чтобы контролировалась уникальность номеров обращений
  •  в класс Meta добавил порядок по дате - ordering = ['-date'], чтобы обращения отображались в нужном порядке
  •  добавил перечисление INCIDENT_TYPES, для определения типов обращений
  •  добавил поле type с выбором значения перечисления INCIDENT_TYPES, для указания типа обращения в обращении
  •  добавил default='CN' в поле type для установки значения типа обращения по умолчанию
  •  добавил для поля description признак blank=True, чтобы можно было не заполнять это поле при понятной теме обращения
  •  добавил для поля description признак help_text, чтобы операторам отображалась подсказка про то, что описание можно не указывать при понятной теме


Модуль models.py


# coding: utf-8
from django.db import models

class Incident(models.Model):  # Обращения
    class Meta:
        db_table = 'app_info_incidents'
        ordering = ['-date']

    # Перечисление типов обращений
    INCIDENT_TYPES = (
        ('CN', 'Консультация'),
        ('ER', 'Ошибка'),
        ('SG', 'Пожелание'),
    )
    # Описание модели
    number = models.IntegerField(verbose_name='Номер', default=0, unique=True)
    subject = models.CharField(verbose_name='Тема', max_length=200)
    description = models.TextField(verbose_name='Описание', blank=True,
                                   help_text='Если тема понятна, описание можно не указывать.')
    date = models.DateTimeField(verbose_name='Добавлено')
    type = models.CharField(verbose_name='Тип обращения', max_length=2,
                            default='CN', choices=INCIDENT_TYPES)

    def __unicode__(self):
        return u'{0} {1} {2}'.format(self.number, self.subject, self.date)


Продолжение на http://practice.keyfire.ru/info/help/
Об авторе
KeyFire

Программирую, Воспитываю, Учусь


Дата публикации: 27.10.2015. Просмотров: 350
Комментарии (0)

Комментарии не добавлены

Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
ava  KeyFire
advanced
Отправить