python - How can I differentiate between users with lookup -


i have 2 classes customer , restaurant have onetoonefield django built in user. when go page trying determine user is. doing doesnt work because user model return true having restaurant attribute, never makes past first if statement...

models.py

class restaurant(models.model):     restaurant_user = models.onetoonefield(user, on_delete=models.cascade)     restaurant_name = models.textfield(max_length=50)     = models.charfield(max_length=500)   class customer(models.model):     customer_user = models.onetoonefield(user, on_delete=models.cascade)     = models.charfield(max_length=500) 

views.py

def dashboard(request):     if user.restaurant:         return render(request,'usermanage/dashboard_restaurant.html')     elif user.customer not none:         return redirect(request, 'usermanage/dashboard.html')     else:         return render(request, 'usermanage/dashboard.html') 

your view file checking restaurant attribute on user model , not instance, not how use models in django, please read documentation on django's orm correct usage. can access authenticated user request request.user. should like:

def dashboard(request):     user = request.user     if user , hasattr(user, 'restaurant'):         return render(request,'usermanage/dashboard_restaurant.html')     elif user , hasattr(user, 'customer') not none:         return redirect(request, 'usermanage/dashboard.html')     else:         return render(request, 'usermanage/dashboard.html') 

make sure read documentation on django's onetoonefield , orm. if refer one-to-one relationship documentation read:

from django.core.exceptions import objectdoesnotexist   try:       p2.restaurant   except objectdoesnotexist:       print("there no restaurant here.")   

there no restaurant here.

you can use hasattr avoid need exception catching:

hasattr(p2, 'restaurant')   

false

one of these 2 example should how check missing restaurant on user.


Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -