TypeError: all() missing 1 required positional argument: 'self' while using AbstractUser model

class User(AbstractUser):
    nickname = models.CharField(max_length=32)
    birthday = models.DateField()
    objects = MyUserManager

class Meta:
    ordering = ('-id',)

Я создал пользовательскую модель пользователя и определил класс MyUserManager для управления моделью.

class MyUserManager(UserManager):
    def _create_user(self, username, email, password, **kwargs):
        if not username:
            raise ValueError("The given username must be set")
        user = self.model(email=self.normalize_email(email), **kwargs)
        user.set_password(password)
        user.save()
        return user

    def create_user(self, username, email=None, password=None, **kwargs):
        kwargs.setdefault('is_admin', False)
        return self._create_user(username, email, password, **kwargs)

    def create_superuser(self, username, email=None, password=None, **kwargs):
        kwargs.setdefault("is_staff", True)
        kwargs.setdefault('is_admin', True)
        return self._create_user(username, email, password, **kwargs)

Я собирался создать функцию createuser/createsuperuser, которая получает значения для пользовательских полей в качестве параметров. Однако, прежде всего, я хотел бы устранить ошибки, которые возникли сейчас.

class UserViewSet(ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializers

Это views.py в приложении учетной записи, и в этом коде возникла ошибка. Почему я не могу найти экземпляр self? Какой экземпляр возвращает исходный User.objects? Есть ли проблема с классом MyUserManager?

Попробуйте добавить круглые скобки перед myusermanager в вашей модели пользователя, например:

objects = MyUserManager()
Вернуться на верх