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.

Reply via email to