簡體   English   中英

排除django中的兩種類型的用戶

[英]Excluding the two types of users in django

我在django中有一個應用程序,並希望在我的視圖中排除匿名用戶和管理員用戶(擁有標記超級用戶的用戶)。

我已經有了排除匿名用戶的代碼,但是如何將管理員用戶放在這里呢?

我的模特

class MyModel(models.Model):
    user = models.ForeignKey(User, blank=True, null=True)
    name = models.CharField(max_length=255, blank=True, null=True)

這是我的查詢:

def get_queryset(self):
    return User.objects.all().exclude(id=settings.ANONYMOUS_USER_ID)

只需添加is_superuser字段的排除:

User.objects.all().exclude(id=settings.ANONYMOUS_USER_ID) \
                  .exclude(is_superuser=True)

您也可以嘗試使用Q

from django.db.models import Q
User.objects.exclude(Q(id=settings.ANONYMOUS_USER_ID) | Q(is_superuser=True))

所有管理員都有一個attribut is_staff=True

User.objects.all().exclude(id=settings.ANONYMOUS_USER_ID).exclude(is_staff=True)

User.objects.all().exclude(id=) 

...並且您可以指定您希望它有權訪問的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM