As i am beginner i am struggling I tried and created as per it,I created two signup forms and login pages with same logic i.e same code snippet two times while signup it's fine but while logging in irrespective of the usertype it is logging into same user every time ,The issue here is how do i differentiate the user while logging in,Please take a look at the code and give inputs.
*models.py* class Developer(models.Model): developer = models.OneToOneField(User,on_delete=models.CASCADE) is_developer = models.BooleanField(default=True) def __str__(self): return self.user.username class ProjectManager(models.Model): manager = models.OneToOneField(User,on_delete=models.CASCADE) is_developer = models.BooleanField(default=False) def __str__(self): return self.user.username *forms.py:* class DeveloperForm(forms.ModelForm): password = forms.CharField(widget=forms.PasswordInput()) class Meta(): model = User fields = ('username','email','password') class ProjectManagerForm(forms.ModelForm): password = forms.CharField(widget=forms.PasswordInput()) class Meta(): model = User fields = ('username','email','password') *views.py:* def index(request): return render(request,'app/index.html',{}) def register(request): return render(request,'app/register.html') def user_login(request): return render(request,'app/login.html') def developer_signup(request): registered = False if request.method == 'POST': user_form = DeveloperForm(data=request.POST) if user_form.is_valid(): user = user_form.save() user.set_password(user.password) user.save() registered = True else: print(user_form.errors) else: user_form = DeveloperForm() return render(request,'app/dev-signup.html', {'user_form':user_form, 'registered':registered}) def manager_signup(request): registered = False if request.method == 'POST': pm_form = ProjectManagerForm(data=request.POST) if pm_form.is_valid(): user = pm_form.save() user.set_password(user.password) user.save() registered = True else: print(pm_form.errors) else: pm_form = ProjectManagerForm() return render(request,'app/pm-signup.html', {'pm_form':pm_form, 'registered':registered}) def pm_signin(request): if request.method=='POST': username=request.POST.get('username') password=request.POST.get('password') manager=authenticate(username=username,password=password) if manager: if manager.is_active: login(request,manager) return render(request,'app/dev-dash.html') else: return HttpResponse('account not active') else: print ('someone failed login') print ('email: {} and password: {}'.format(username,password)) return HttpResponse('<h1>invalid login</h1>') else: return render(request,'app/pm-signin.html',{}) def dev_signin(request): if request.method=='POST': username=request.POST.get('username') password=request.POST.get('password') developer=authenticate(username=username,password=password) if developer: if developer.is_active: login(request,developer) return render(request,'app/pm-dash.html') else: return HttpResponse('account not active') else: print ('someone failed login') print ('email: {} and password: {}'.format(username,password)) return HttpResponse('<h1>invalid login</h1>') else: return render(request,'app/pm-signin.html',{}) On Friday, 5 November 2021 at 07:54:14 UTC+5:30 riis....@gmail.com wrote: > i agree with kasper, but one tip is to start with the user class. > check out django.contrib.auth.base_user > > Den tors 4 nov. 2021 kl 18:36 skrev Kasper Laudrup <lau...@stacktrace.dk>: > >> On 04/11/2021 14.54, Trippy Samurai wrote: >> > Hi there, >> > I am new to django and have a problem statement am not quite sure how >> to >> > approach this,Please help me, >> > >> >> I think you should approach it just as it has been described, i.e. one >> step at a time. >> >> Kind regards, >> >> Kasper Laudrup >> >> -- >> 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/9c9dbfc3-8fa8-5ff2-8405-f5614da92f55%40stacktrace.dk >> . >> > -- 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/e6481a7c-d6ef-417e-a2e9-e7c22e27127cn%40googlegroups.com.