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()