tinytengu / adwile

Тестовое задание Adwile

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

adwile_test

Тестовое задание Adwile (ТЗ)

Установка и запуск

Процесс установки может быть абсолютно разный, хоть через Docker контейнеры, хоть вручную, я приведу самый простой пример Develop окружения.

  1. Клонировать репозиторий

  2. Инициализировать и активировать виртуальное окружение Python (pipenv, poetry, etc.)

python3 -m venv .venv
# Windows
.\.venv\Scripts\activate
# UNIX
source .venv/bin/activate
  1. Установить зависимости проекта
pip install -r requirements.txt
  1. Инициализировать БД
python manage.py makemigrations
python manage.py migrate
  1. (Опционально) Создать аккаунт суперпользователя
python manage.py createsuperuser
  1. Запустить Development сервер
python manage.py runserver
  1. Готово, сервер запущен на http://localhost:8000/

(Bonus) Действия при оплате/отклонении тизера

Произведение каких-либо операций при изменении статуса тизера (оплате или отклонении), можно реализовать либо оверрайдом методов модели, либо сигналами, я покажу на сигналах:

from django.db.models.signals import post_save

from teasers.models import Teaser


def status_changed_callback(signal, sender, instance: Teaser, *args, **kwargs):
    if instance.status == Teaser.Status.PAID:
        print(f"The teaser '{instance}' was paid for")
    if instance.status == Teaser.Status.REJECTED:
        print(f"The teaser '{instance}' was rejected")


post_save.connect(status_changed_callback, sender=Teaser)

About

Тестовое задание Adwile


Languages

Language:Python 100.0%