Задать вопрос
vikkyshostak
@vikkyshostak
< This head full of dreams.

Best practies? Две независимые модели для пользователя и админа, Django 1.11.x?

Всем доброго времени года!

После ударных месяцев поддержки разных API и мелких сайтиков на Flask/Bottle/Sanic, знакомые подкинули нулевой проект на Django 1.11.x (причём буквально «нулевой»: создано пару моделей, разделены настройки по окружениям, прописаны начальные тесты и тому подобное). С Джангой я знаком только с бородатой 1.6 версией (потом затянуло в пучину Laravel), и ничего серьёзней «Hello World» на нём не делал, а поучаствовать в проекте есть желание (в том числе, чтобы узнать Django по-лучше) :(

[лирика] Тема проекта: сайт-блог для владельцев собачек-кошечек-хомяков-etc, с пожертвованиями на лечение животных из приютов Петербурга (да-да, пора бы уже плюс в карму сделать, проект нон-профит). Соответственно, должен быть личный кабинет, где все эти транзакции пишутся, ибо планируется подключение онлайн кассы с ОФД (чтобы не нарушать 54-ФЗ). Зачем? Ну вообще закон надо соблюдать, да и потом отчитываться в налоговой, говорят, проще будет (сбор средств для животинок, а не своей наживы — всё по белому должно быть). [/лирика]

Итак, сам вопрос. Есть ли какие-либо проверенные и рабочие best practies для осуществления вот такой системы:
  1. Есть стандартный суперпользователь + модераторы сайта (модель User, которая из коробки);
  2. Есть модель для пользователей-меценатов CustomUser (с полями для личной инфы, телефона, etc);
  3. Эти две модели не должны пересекаться, то есть наследоваться или работать через proxy (две разных таблицы БД);
  4. Должна быть и стандартная авторизация для модели User, и отдельная — для модели CustomUser;
  5. Только модель CustomUserвидна в публичной части сайта (аля «больше всех в этом месяце помог [...], прислав [...]»;
  6. У CustomUser должен быть (приватный) личный кабинет (вне админки), со всеми транзакциями и редактированием;

[ремарка] Сама модель CustomUser — это что-то типа «покупатель пожертвования» (жесть, но по-другому не могу объяснить). То есть, планируется делать некие фиксированные «бандлы» с фирменными безделушками от партнёров (типа «1000 руб. = магнитик», «5000 руб. = футболочка» и так далее), чтобы нельзя было жертвовать произвольную сумму + что-то осталось на память :) [/ремарка]

Собственно, буду рад толковым комментариям и предложениям! Заранее спасибо.

P.S. я понимаю, что никто не даст тут «готового кода на блюдечке», но алгоритм построения такой системы — уже хлеб :D
  • Вопрос задан
  • 1335 просмотров
Подписаться 6 Оценить 4 комментария
Ответ пользователя un1t К ответам на вопрос (3)
un1t
@un1t
Делаешь одну модель, добавляшь ей поле role например. И по ней потом даешь доступы.
Ответ написан