*models.py* from django.db import models import uuid from django.contrib.auth.models import (BaseUserManager, AbstractBaseUser) from django.contrib.postgres.fields import ArrayField
class UserManager(BaseUserManager): def create_user(self, email, password=None, **kwargs): if not email: raise ValueError('Users must have an email address') user = self.model(email=self.normalize_email(email), **kwargs) user.set_password(password) user.save(using=self._db) return user def create_superuser(self, email, password=None, **extra_fields): user = self.create_user(email, password=password, **extra_fields) user.is_admin = True user.save(using=self._db) return user class User(AbstractBaseUser): id = models.AutoField(primary_key=True, unique = True) # id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) first_name = models.CharField(max_length = 50, blank = False) last_name = models.CharField(max_length = 50, blank = False) email = models.EmailField(verbose_name='email address', max_length=255, unique=True) # password = models.CharField(verbose_name='password', max_length=50) phone = models.CharField(max_length = 10, blank = False, null = False) address = models.CharField(max_length = 200, blank = False) gender = models.CharField(max_length = 50, blank = False) role = models.CharField(max_length = 50, blank = False) date_of_birth = models.DateField(null = True, blank = True) facebook = models.CharField(max_length = 50, blank = True) twitter = models.CharField(max_length = 50, blank = True) instagram = models.CharField(max_length = 50, blank = True) linkedin = models.CharField(max_length = 50, blank = True) email_verified = models.BooleanField(null = True, default = False) is_deleted = models.BooleanField(default=False) deleted_time = models.DateTimeField(auto_now=True) is_active = models.BooleanField(default=True) is_staff = models.BooleanField(default=False) is_admin = models.BooleanField(default=False) last_login = models.DateTimeField(auto_now=True) created = models.DateTimeField(auto_now_add=True, db_index=True) modified = models.DateTimeField(auto_now=True) objects = UserManager() USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['first_name', 'last_name'] def __str__(self): return self.email def has_perm(self, perm, obj=None): "Does the user have a specific permission?" # Simplest possible answer: Yes, always return True def has_module_perms(self, app_label): "Does the user have permissions to view the app `app_label`?" # Simplest possible answer: Yes, always return True @property def is_staff(self): "Is the user a member of staff?" # Simplest possible answer: All admins are staff return self.is_admin *Serializers.py* from rest_framework import serializers from account.models import User from rest_framework.authtoken.models import Token class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ('__all__') *Views.py* from django.shortcuts import render # from django.contrib.auth import authenticate # from django.shortcuts import get_object_or_404 from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from account.models import User from account.serializers import UserSerializer from rest_framework.permissions import AllowAny from rest_framework import serializers # import requests class RegisterUser(APIView): class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ('first_name', 'last_name', 'email','password') def post(self, request): #################################### create user post first_name = request.data.get("first_name") last_name = request.data.get("last_name") email = request.data.get("email") password = request.data.get("password") is_admin = request.data.get("is_admin") user = User() user.first_name = first_name user.last_name = last_name user.email = email user.password = password user.is_admin = is_admin user.save() return Response({"status": True, "user": UserSerializer(user).data}) def get(self, request, *args, **kwargs): #################################### get all user users = User.objects.all() return Response({"status": True, "users": UserSerializer(users, many = True).data}) On Mon, Dec 16, 2019 at 6:15 AM Suraj Thapa FC <surajthap...@gmail.com> wrote: > Where's the code > > On Mon, 16 Dec 2019, 5:53 pm Tafadzwa Marshal, <marsha...@gmail.com> > wrote: > >> hello, your problem is easy to solve. The 'createsuperuser' command >> creates a user with the 'staff' attribute set to true. When you create a >> user through >> the model thats inheriting from the User model, the default for the >> 'staff' attribute is set to false. The solution is to make sure you >> override the save method >> and set the 'staff' attribute to true. >> >> On Mon, Dec 16, 2019 at 3:38 AM sagar ninave <sagarnin...@gmail.com> >> wrote: >> >>> Hello Everyone, >>> >>> i am getting some issue please help me. >>> >>> i have created custom user model in account app by extending auth user >>> model. also i have creates register api to register user. i am able to >>> create superuser from command prompt and api as well. and both user are >>> storing in single User model along with when i am hitting get request and i >>> got response all user which register from command prompt and api. problem >>> is that User is able to logging in admin panel which is registered by >>> command line by command *python manage.py createsuperuser *but user is >>> not able tologging in admin panel user which is created by register api. >>> when i am seeing data of both user created by cmd and created by register >>> api in admin panel that CMD created user's password is encrypted and user >>> created by register api is plain text. may be at the time of creating >>> superuser password is saving in encrypted form and user registered by api >>> his password is saving in plain text form so that it may not authenticating >>> user to redirect on admin panel. so what is happening exactly please clear >>> this doubt and help to get out from this situation >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Django users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to django-users+unsubscr...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/django-users/a962e5fd-c41d-465c-a179-14f84ace9551%40googlegroups.com >>> <https://groups.google.com/d/msgid/django-users/a962e5fd-c41d-465c-a179-14f84ace9551%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to django-users+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/CAFgO-6hUKDCcHqt9vZP645rAksuKjNhuPRyG3JPv1TQTQL948A%40mail.gmail.com >> <https://groups.google.com/d/msgid/django-users/CAFgO-6hUKDCcHqt9vZP645rAksuKjNhuPRyG3JPv1TQTQL948A%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to django-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/CAPjsHcHx6HQ44E0Ufox2%3D4ZQJMYOub6Kro-rn0%3DbhQi%2BoCCrPg%40mail.gmail.com > <https://groups.google.com/d/msgid/django-users/CAPjsHcHx6HQ44E0Ufox2%3D4ZQJMYOub6Kro-rn0%3DbhQi%2BoCCrPg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- <https://about.me/sagarninave?promo=email_sig&utm_source=product&utm_medium=email_sig&utm_campaign=gmail_api&utm_content=thumb> sagar ninave about.me/sagarninave <https://about.me/sagarninave?promo=email_sig&utm_source=product&utm_medium=email_sig&utm_campaign=gmail_api&utm_content=thumb> -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAA6pdZ-s6EPbn9UO6oj5UaG3RYZKFg3bbzmfN3HQ55praP4C5Q%40mail.gmail.com.