Проблемы с пользовательской моделью пользователя в Django 5.0

Я довольно новичок в мире приложений django, поэтому я все еще изучаю, как все это работает.

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

  1. Я могу создавать пользователей из админ-панели Django, но затем эти пользователи не могут войти ни в приложение, ни в админ-панель, даже когда я создал их с отметками superuser и staff.

  2. Я могу сделать связь между моими пользователями и группами модели auth.Group.

Чтобы решить проблему 1) или хотя бы смириться с ней, я обнаружил, что могу создавать пользователей с помощью терминала и команды 'createsuperuser' и удалять права позже, хотя я подозреваю, что это "удаление прав" не работает вообще. Но для целей этого проекта я решил, что это будет нормально, по крайней мере, пока.

Я включил эти строки в файл views.py моего проекта django с пользовательской моделью_apps:

...
from django.contrib.auth.models import AbstractUser
...

...
class User(AbstractUser):
    image = models.ImageField(upload_to=profile_picture_path, blank=True)
    birthday = models.DateField(null=True, blank=True)
    dark_mode = models.BooleanField(default=False)
    telephone = models.CharField(
        max_length=20, null=True, blank=True, default=None)
...

А в моем проекте settings.py:

INSTALLED_APPS = [
...
my_app's_name.apps.AsistenciasConfig'
...
]

AUTH_USER_MODEL = 'my_app's_name.User'

Я использую эту функцию для создания части входа в систему:

def Log_in_function(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)

        if user is not None:
            login(request, user)
            return redirect('home')
        else:
            messages.error(request, 'Wrong username or password.')

    form = AuthenticationForm()
    return render(request, 'core/login.html', {'form': form})

И я получаю сообщение 'Wrong username ...' на моем localhost и в панели администратора.Я предполагаю, что функция 'authenticate' указывает каким-то образом на пользователей 'auth.user', а не на моего 'my_name_app.user', поэтому, когда он пытается аутентифицировать имя пользователя и пароль, он терпит неудачу, потому что там ничего нет...

  1. Продвигаясь с моим проектом, я подумал, что было бы неплохо фильтровать некоторые действия в зависимости от того, кто вошел в систему, поэтому я попытался использовать django groups и таким образом обнаружил, что, похоже, модель Group, которую создает сам Django, полностью отделена от моей пользовательской модели 'User'. Таким образом, даже когда я могу создавать группы в админ-панели django, я не могу назначить их своим пользователям, и все мои пользователи являются частью всех групп, которые я создал (возможно, потому что они были созданы с помощью команды 'superuser'), даже когда группы появились намного позже, чем пользователи.

Я попытался добавить поле 'group' с отношениями 'ForeingKey' и 'ManyToMany' к 'auth.Group' из моей модели пользователя, но это просто добавило поле в мою форму создания/редактирования пользователя параллельно с Group из auth.Group и все еще не может назначить определенную группу для данного пользователя. Поэтому на данный момент я не знаю, что делать, чтобы решить эту проблему.

Есть идеи?

Вернуться на верх