Невозможно выполнить запрос "": Должен быть экземпляр "User" в Django 3.2

Я получаю эту ошибку из следующего представления:

from django.shortcuts import render, redirect
from movies import models as movies_models
from django.contrib.auth import get_user_model

User = get_user_model()


def playlists_view(request):
    if (not request.user.is_authenticated) or (not request.user.is_staff):
        return redirect('Login')

    playlists = movies_models.PlayList.objects.filter(created_by=request.user).order_by('-id')

    return render(request, 'cpanel/playlists.html', {'playlists': playlists})

Моя модель плейлиста выглядит следующим образом:

но важной частью этой модели является это поле:

created_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)

И я определяю пользователя следующим образом:

from django.contrib.auth import get_user_model

User = get_user_model()

Когда я запускаю приложение django на моем localhost, все в порядке, но на рабочем сервере я получаю эту ошибку :(

)

Я попробовал вместо request.user использовать User.objects.get(username=request.user), но получил ту же ошибку в следующей строке:

playlists = movies_models.PlayList.objects.filter(created_by=request.user).order_by('-id')

My User - это простая модель пользователя, которая наследуется от модели AbstractUser.

Спасибо за внимание. :)

Похоже, что вы используете пользовательский класс User. Убедитесь, что именно он используется в ваших моделях. Как задокументировано в Ссылка на модель User:

Если вы ссылаетесь на User непосредственно (например, используя ссылку на него в внешнем ключе), ваш код не будет работать в проектах, где настройка AUTH_USER_MODEL была изменена на другую модель пользователя.

Когда вы определяете внешний ключ или отношения "многие ко многим" к пользовательской модели, вы должны указать пользовательскую модель, используя настройку AUTH_USER_MODEL

.

Сначала убедитесь, что вы правильно подставили пользовательский класс пользователя в settings.py и выполнили необходимую миграцию.

...
AUTH_USER_MODEL = 'myapp.MyUser'
...

Затем попробуйте изменить это (предполагая, что User здесь еще не является результатом get_user_model(), потому что это не было указано в вставленной модели в вопросе):

created_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)

To:

from django.conf import settings
...
created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, blank=True)

Ор:

from django.contrib.auth import get_user_model
...
created_by = models.ForeignKey(get_user_model(), on_delete=models.SET_NULL, null=True, blank=True)

Убедитесь, что они правильно мигрируют без сбоев:

python manage.py makemigrations
python manage.py migrate
Вернуться на верх