Django Несколько типов пользователей с платной системой - PullRequest
0 голосов
/ 13 января 2020

Я чрезвычайно новичок в работе Django, и мне нужно было немного больше понимания. В настоящее время я создаю проект для двух типов пользователей. Примером может служить приложение типа учителя и ученика. Основное отличие состоит в том, что мне бы хотелось, чтобы один из пользователей имел платный уровень. Пример: я хотел бы, чтобы учитель мог войти в систему только в случае оплаты.

Мой другой вопрос будет. Я уже работал над проектом, прежде чем пришел к выводу, что AbstractUser может быть лучшим решением.

  1. Можно ли обойти использование AbstractUser с использованием OnetoOneModels с таким типом установки?

  2. Я нашел документацию, в которой говорится, что лучше использовать AbstractUser до выполнения любых миграций, как бы я go изменил свой проект в соответствии с этими новыми требованиями "Если AbstractUser лучше"? Если нет легкого пути, я не могу начать с того, чтобы все исправить.

Андрей

1 Ответ

0 голосов
/ 14 января 2020

Вы можете унаследовать свою пользовательскую модель от AbstractUser и добавить в нее свои пользовательские поля.

from django.contrib.auth.models import AbstractUser

class MyUser(AbstractBaseUser):
    ...
    date_of_birth = models.DateField()
    height = models.FloatField()

Например, для типов пользователей вы можете добавить поле внешнего ключа:

user_type = models.ForeignKey(
    UserType,
    on_delete=models.SET_NULL
)

Или вы можете добавить некоторое логическое поле:

is_paid_tier_user = models.BooleanField(default=True) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...