Cp Verma
Cp Verma

Reputation: 502

Authentication is not working foer custom user model

Why the authentication is not working with custom model "Consultants".i have tried a lot but it not working models.py

class Consultants(models.Model):
    # user=models.OneToOneField(User)
    consul_id=models.IntegerField(default=0,primary_key=True)
    first_name=models.CharField(max_length=255,blank=True,null=True)
    last_name=models.CharField(max_length=255,blank=True,null=True)
    email=models.EmailField(max_length=255,blank=True,null=True)
    username=models.CharField(max_length=255,blank=True,null=True)
    password=models.CharField(max_length=50,blank=True,null=True)
    consul_pic=models.ImageField(upload_to="/home/cp/Documents/consul_pic",blank=True,null=True)
    mobile_no=models.CharField(max_length=255,blank=True,null=True)
)
    last_login=models.DateTimeField(default=datetime.now,blank=True,null=True)
    is_active=models.BooleanField(default=False)


    def __str__(self):
        return self.first_name or u''

views.py

def login_user(request):
    context = RequestContext(request)
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        print type(username)
        try:
            user = authenticate(username=username, password=password)
            print 'chala'
            if user.is_active:
                user.backend = 'django.contrib.auth.backends.ModelBackend'
                login(request, user)

                return HttpResponse("welcome......you are succesfuly log in")
            else:
                return HttpResponse("Your  account is disabled.")
        except ObjectDoesNotExist:
            return HttpResponse("INvalid User")


    else:
         return render_to_response('login.html', {}, context)

when i try to authenticate it return None. it is the correct way which i try to login please help me in it.

Upvotes: 1

Views: 39

Answers (1)

anjaneyulubatta505
anjaneyulubatta505

Reputation: 11665

that is not correct way of customizing user model you should try like this
reference : https://docs.djangoproject.com/en/1.9/topics/auth/customizing/

from django.contrib.auth.models import (AbstractBaseUser,
                                        PermissionsMixin,
                                        UserManager)

class Consultants(AbstractBaseUser, PermissionsMixin):
      consul_id=models.IntegerField(default=0,primary_key=True)
      first_name=models.CharField(max_length=255,blank=True,null=True)
      last_name=models.CharField(max_length=255,blank=True,null=True)
      email=models.EmailField(max_length=255,blank=True,null=True)
      username=models.CharField(max_length=255,blank=True,null=True)
      password=models.CharField(max_length=50,blank=True,null=True)
      consul_pic=models.ImageField(upload_to="/home/cp/Documents/consul_pic",blank=True,null=True)
      mobile_no=models.CharField(max_length=255,blank=True,null=True))
      last_login=models.DateTimeField(default=datetime.now,blank=True,null=True)
      is_active=models.BooleanField(default=False)
      objects = UserManager()


      def __str__(self):
           return self.first_name or u''

Upvotes: 1

Related Questions