Here you go On Wednesday, 2 November 2022 at 9:12:54 pm UTC+5:45 hubak...@gmail.com wrote:
> Hi Saksham, please let us see your user model.py and views.py. > > On Wed, Nov 2, 2022 at 2:52 PM Saksham Khanal <saksham....@gmail.com> > wrote: > >> when I try to new register new user form the API,the saved user doesn't >> have it's password hashed which is creating a problem while logging in.You >> can see the difference between admin and new_user.To create a user model I >> have inherited a Abstract user class.You can also check my register >> serializer >> [image: Django_group.png][image: Django_group1.png] >> >> -- >> 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...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/d9adde23-46cd-40bf-babc-ced3d4b9d9ban%40googlegroups.com >> >> <https://groups.google.com/d/msgid/django-users/d9adde23-46cd-40bf-babc-ced3d4b9d9ban%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/a358b0a3-b544-4cc5-98fa-394468b662e2n%40googlegroups.com.
#view.py from urllib import request from django.contrib.auth import login from knox.auth import AuthToken from knox.views import LoginView as KnoxLoginView from rest_framework import permissions from rest_framework.authtoken.serializers import AuthTokenSerializer from rest_framework.decorators import api_view from rest_framework.response import Response from dsorders.api.serializers import RegisterSerializers @api_view(['POST']) def login_api(request): serializer=AuthTokenSerializer(data=request.data) serializer.is_valid(raise_exception=True) user = serializer.validated_data['user'] _,token = AuthToken.objects.create(user) return Response({ 'user_info':{ 'id':user.id, 'username':user.username, 'email':user.email, }, 'token':token }) # class LoginView(KnoxLoginView): # def post(self,request,format=None): # serializer = AuthTokenSerializer(data=request.data) # serializer.is_valid(raise_exception=True) # user = serializer.validated_data['user'] # login(request,user) # return super(LoginView,self).post(request,format=None) @api_view(['POST']) def register_api(request): serializer = RegisterSerializers(data=request.data) serializer.is_valid(raise_exception=True) user = serializer.save() _,token = AuthToken.objects.create(user) return Response({ 'user_info':{ 'id':user.id, 'username':user.username, 'email':user.email, }, 'token':token }) @api_view(['GET']) def get_user_data(request): user = request.user if user.is_authenticated: return Response({ 'user_info':{ 'id':user.id, 'username':user.username, 'email':user.email, } }) return Response({'error':'not is_authenticated'},status=400)
import email from ast import Pass from curses.ascii import NUL from decimal import Decimal from email.headerregistry import Address from email.policy import default from re import A from tabnanny import verbose from django.contrib.auth.models import AbstractUser, User from django.core.validators import MinValueValidator from django.db import models from django.db.models.signals import post_save, pre_save from django.dispatch import receiver # Create your models here. class User(AbstractUser): is_active: models.BooleanField(default=True) is_staff: models.BooleanField(default=True) class Dealer(models.Model): name = models.CharField(max_length=100,verbose_name='Name',null=True,blank=True) phone = models.CharField(max_length=15,verbose_name='Phone Number',unique=True) persons_name = models.CharField(max_length=100,verbose_name="Person's name",null=True,blank=True) additional_info = models.CharField(max_length=100,null=True,blank=True) user = models.OneToOneField(User,null=True,blank=True,on_delete=models.SET_NULL,related_name="dealer_user") def __str__(self): return self.name class Meta: verbose_name_plural = 'Dealer' class Salesman(models.Model): name = models.CharField(max_length=100,verbose_name='Name',null=True,blank=True) phone = models.CharField(max_length=12,verbose_name='Phone number',unique=True) address = models.CharField(max_length=50,verbose_name='Address',null=True,blank=True) additional_info = models.TextField(max_length=100,null=True,blank=True) user = models.OneToOneField(User,null=True,blank=True,on_delete=models.SET_NULL,related_name='Salesman_user') dealer = models.ForeignKey(Dealer,on_delete=models.SET_NULL,related_name='dealer_Salesman',null=True,blank=True) def __str__(self): return self.name class Meta: verbose_name_plural = 'Salesman' class Item(models.Model): name = models.CharField(max_length=100,verbose_name='Name',null=True,blank=True) price = models.DecimalField(max_digits=10,decimal_places=0,validators=[MinValueValidator(Decimal('0.01'))],verbose_name='Price',null=True,blank=True) selling_unit = models.CharField(max_length=100) description = models.TextField(max_length=500,verbose_name='Description',null=True,blank=True) dealer = models.ForeignKey(Dealer,on_delete=models.CASCADE,null=True,blank=True,related_name='Dealer_Item') class Meta: verbose_name_plural = 'Item' def __str__(self): return self.name class Order(models.Model): date = models.DateTimeField(auto_now_add=True,verbose_name='Date Ordered') salesman = models.ForeignKey(Salesman,on_delete=models.CASCADE,related_name='salesman_orders',verbose_name='Salesman') # Items = models.ManyToManyField(Item,related_name="Ordred_Items") class Meta: verbose_name_plural ='Order' class Shop(models.Model): name = models.CharField(max_length=100,verbose_name='Shop name') address = models.CharField(max_length=100,null=True,blank=True,verbose_name='Address') phone = models.CharField(max_length=16,null=True,blank=True) additional_info = models.TextField(max_length=100,null=True,blank=True) dealer = models.ForeignKey(Dealer,on_delete=models.CASCADE,related_name='Dealer',verbose_name='Dealer Salesman') Salesman = models.ManyToManyField(Salesman,related_name="salesman") def __str__(self): return self.name @receiver(pre_save,sender=Dealer) def create_user_for_dealer(sender,instance,**kwargs): try: user = User.objects.get(username=instance.phone) except User.DoesNotExist: User.objects.create_user(username=instance.phone,email="",password=instance.phone) @receiver(pre_save,sender=Salesman) def create_user_for_salesman(sender,instance,**kwargs): try: user = User.objects.get(username=instance.phone) except User.DoesNotExist: User.objects.create_user(username=instance.phone,email="",password=instance.phone) @receiver(post_save,sender=Dealer) def linking_dealer(sender,instance,**kwargs): user = User.objects.get(username=instance.phone) if instance.user is None: instance.user = user instance.save() @receiver(post_save,sender=Salesman) def linking_salesman(sender,instance,**kwargs): user = User.objects.get(username=instance.phone) if instance.user is None: instance.user = user instance.save()