Построение моделей купонов

Начнем с создания модели Coupon. Измените файл models.py приложения coupons и добавьте в него следующий код:

from django.db import models
from django.core.validators import MinValueValidator, MaxValueValidator


class Coupon(models.Model):
    code = models.CharField(max_length=50, unique=True)
    valid_from = models.DateTimeField()
    valid_to = models.DateTimeField()
    discount = models.IntegerField(validators=[MinValueValidator(0), MaxValueValidator(100)])
    active = models.BooleanField()

    def __str__(self):
        return self.code

Это модель, которую мы собираемся использовать для хранения купонов. Модель Coupon содержит следующие поля:

  • code : Код, который пользователи должны ввести для применения купона к покупке.
  • valid_from : Значение datetime, указывающее, когда купон становится действительным.
  • valid_to : Значение datetime, указывающее, когда купон становится недействительным.
  • discount : Применяемая ставка дисконта (это процент, поэтому она принимает значения от 0 до 100). Средства проверки для этого поля используются для ограничения минимальных и максимальных допустимых значений.
  • active : Логическое значение, указывающее, активен ли купон.

Выполните следующую команду, чтобы создать начальную миграцию для приложения купонов:

python manage.py makemigrations

Выходные данные должны включать следующие строки:

Migrations for 'coupons':
    0001_initial.py:
        - Create model Coupon

Затем мы выполняем следующую команду для применения миграции:

python manage.py migrate

Следует увидеть выходные данные, включающие следующую строку:

Applying coupons.0001_initial... OK

Миграция теперь применена в базе данных. Давайте добавим модель Coupon на сайт администрирования. Измените файл admin.py приложения coupons и добавьте в него следующий код:

from django.contrib import admin
from .models import Coupon


class CouponAdmin(admin.ModelAdmin):
    list_display = ['code', 'valid_form', 'valid_to', 'discount', 'active']
    list_filter = ['active', 'valid_form', 'valid_to']
    search_fields = ['code']
admin.site.register(Coupon, CouponAdmin)

Модель Coupon теперь зарегистрирована на сайте администрирования. Откройте в браузере http://127.0.0.1:8000/admin/coupons/coupon/add/. Вы увидите следующую форму:

Заполните форму для создания нового купона, который действителен для текущей даты, убедитесь, что флажок Active установлен, и нажмите кнопку Сохранить.

results matching ""

    No results matching ""