Ich habe zwei Klassen Customer
und Restaurant
, die OneToOneField
mit dem Django in User
eingebaut haben. Wenn ich auf eine Seite gehe, versuche ich herauszufinden, welches User
es ist. Was ich nicht funktioniert tue, weil das User
Modell wird immer wahr zurückgeben restaurant
Attribut für hat, so macht es nie über die erste if
Aussage ...Wie kann ich zwischen Benutzern mit Nachschlagen unterscheiden
models.py
class Restaurant(models.Model):
restaurant_user = models.OneToOneField(User, on_delete=models.CASCADE)
restaurant_name = models.TextField(max_length=50)
about = models.CharField(max_length=500)
class Customer(models.Model):
customer_user = models.OneToOneField(User, on_delete=models.CASCADE)
about = models.CharField(max_length=500)
views.py
def dashboard(request):
if User.restaurant:
return render(request,'usermanage/dashboard_restaurant.html')
elif User.customer is not None:
return redirect(request, 'usermanage/dashboard.html')
else:
return render(request, 'usermanage/dashboard.html')
Sie sollten ein Flag- oder Statusfeld oder Rollenfeld festlegen, das beschreibt, welcher Benutzertyp in Ihrem 'CustomUser'-Modell beschrieben wird. Dann können Sie ohne Komplikationen zwischen den beiden unterscheiden. Ohne dies unterscheidet Django nicht zwischen einem Restaurantbenutzer und einem Kundenbenutzer. – zaidfazil