@Andrew_Novikov

Как создать модель пробной подписки в проекте на Django?

Изучаю Django и хочу сделать пробную подписку. Нашел одно решение, но не совсем понимаю, почему у меня не работает. Все глохнет на моменте создания класса в models.py.
У меня есть три приложения (main, news, users). В данном вопросе важны только main и users.
1. В приложении users/models.py я создал класс для регистрации пользователя.

from django.db import models
from django.contrib.auth.models import User

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    image = models.ImageField(default='default.jpg', upload_to='profile_pics')

    def __str__(self):
        return f'{self.user.username} Profile'

Дальше сделал все по инстукции (views.py, admin.py и т.д.). Регистрация, автоматизация, доступ только зарегестрированным и т.д. Все прекрасно работает.

2. В приложение main, хочу создать подписочную модель, которая бы давала доступ на время. Нашел модель приблизительно следующую:

from django.db import models
from django.conf import settings

class Subscription(models.Model):
    order_id = models.CharField(max_length=512, null=True, blank=True)
    expires = models.DateTimeField(null=True,blank=True)
    value = models.CharField(max_length=32, null=True, blank=True)
    active = models.BooleanField(default=False)
    plan = models.CharField(max_length=8, null=True, blank=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

3. Ну думаю, ок. Читаю, settings.AUTH_USER_MODEL - это модель пользователя указывающаяся в настройках проекта.
4. Прописываю в settings.py , такую переменную: AUTH_USER_MODEL = 'users.Profile'
5. И тут вроде бы все. Пытаюсь мигрировать, но ничего не происходит. Начинаю запускать проект и полезли ошибки.
6. То ей пропиши файл с установками os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
7. То ей пропиши django.setup()
8. Сейчас следующая ошибка вылезла.

В примерах, которые я использовал ничего из этого не было, все было в порядке.

Есть идея, не создавать связанные модели, а просто в view.py прописать функцию, где будет добавляться уникальное имя пользователя, если он авторизован. Дальше проверять и наличие подписки и открывать доступ.

НО! Хотелось бы понять, что я делал не так и где затупил. Плюс может вы подскажите идею с подписочной моделью, которую я попробую в своем проекте.
  • Вопрос задан
  • 156 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Ты не так понимаешь AUTH_USER_MODEL, шаг 4 и далее бессмысленные и похожи на метод тыка, а самое главное ты не говоришь какие именно у тебя ошибки. Ну и форматируй код и не ставь лишние теги
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы