@Vitalii181190
Начинающий вэб-разработчик

Создал приложение и Модель для отслеживания онлайн пользователей ссылка на урок https://evileg.com/ru/post/546/ выдает ошибку при создании миграций?

settings.py
INSTALLED_APPS = [
'my_auth_project.apps.MyAuthConfig',
...
]
AUTHENTICATION_BACKENDS = (
    'my_auth_project.backends.MyBackend',
    'django.contrib.auth.backends.ModelBackend',
)

modes.py
from django.contrib.auth.models import AbstractUser
from django.contrib.humanize.templatetags.humanize import naturaltime
from django.db import models
from django.utils import timezone
from django.utils.translation import gettext_lazy as _


class User(AbstractUser):
    last_online = models.DateTimeField(verbose_name='Online', blank=True, null=True)

    def is_online(self):
        if self.last_online:
            return (timezone.now() - self.last_online) < timezone.timedelta(minutes=15)
        return False

    def get_online_info(self):
        if self.is_online():
            return _('Online')
        if self.last_online:
            return _('Last visit {}').format(naturaltime(self.last_online))

        return _('Unknow')

backends.py
from django.contrib.auth import get_user_model
from django.utils import timezone
from django.contrib.auth.backends import BaseBackend


class MyBackend(BaseBackend):
    def get_user(self, user_id):
        try:
            user = get_user_model().objects.get(pk=user_id)
            user.last_online = timezone.now()  
            user.save(update_fields=['last_online'])
            return user
        except get_user_model().DoesNotExist:
            return None

Ошибка
SystemCheckError: System check identified some issues:

ERRORS:
auth.User.groups: (fields.E304) Reverse accessor for 'auth.User.groups' clashes with reverse accessor for 'users.User.groups'.
        HINT: Add or change a related_name argument to the definition for 'auth.User.groups' or 'users.User.groups'.
auth.User.user_permissions: (fields.E304) Reverse accessor for 'auth.User.user_permissions' clashes with reverse accessor for 'users.User.user_permissions'.
        HINT: Add or change a related_name argument to the definition for 'auth.User.user_permissions' or 'users.User.user_permissions'.
users.User.groups: (fields.E304) Reverse accessor for 'users.User.groups' clashes with reverse accessor for 'auth.User.groups'.
        HINT: Add or change a related_name argument to the definition for 'users.User.groups' or 'auth.User.groups'.
users.User.user_permissions: (fields.E304) Reverse accessor for 'users.User.user_permissions' clashes with reverse accessor for 'auth.User.user_permissions'.
        HINT: Add or change a related_name argument to the definition for 'users.User.user_permissions' or 'auth.User.user_permissions'.
  • Вопрос задан
  • 523 просмотра
Пригласить эксперта
Ответы на вопрос 1
syschel
@syschel
freelance/python/django/backend
Вы пытаетесь переопределить модель пользователя, но в settings видать не указали, что было переопределение. Вот у вас и пошёл конфликт с базовой моделью, которая обозвана точно так же. AUTH_USER_MODEL

settings.py
AUTH_USER_MODEL = 'my_auth_project.User'

Если конфликт имён будет всёравно, то переименуйте свою кастомную модель, к примеру на MyUser
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы