[英]Django - Login required for specific user type
我使用 AbstractUser 從 Django 擴展了用戶登錄,如下所示:
class User(AbstractUser):
pass
class Seller(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
verified = models.BooleanField(default=False)
money = models.IntegerField(default=0)
def __str__(self):
return str(self.user)
我現在想創建一個只能由“賣家”用戶訪問的視圖和表單,就像在 views.py 中這樣:
@login_required
def account(request):
return render(request= request,
template_name='main/account.html',
context = {})
關於我該怎么做的任何想法? 謝謝
您可以使用@user_passes_test
裝飾器 [Django-doc] :
from django.contrib.auth.decorators import user_passes_test
def is_seller(user):
try:
return user.is_authenticated and user.seller is not None
except Seller.DoesNotExist:
return False
@user_passes_test(is_seller)
def account(request):
# …
這將只允許經過身份驗證且存在相關Seller
object 的用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.