Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django是视图中的用户_Django - Fatal编程技术网

django是视图中的用户

django是视图中的用户,django,Django,我正在尝试根据登录的用户生成站点列表。如果用户是_人员,他们将获得所有站点,如果不是,他们将获得与用户属于同一公司的站点 视图永远不会返回is_staff=True。即使他们是 models.py class Site(models.Model): site_name = models.CharField(max_length=100, blank=False, null=False) def __unicode__(self): return self.sit

我正在尝试根据登录的用户生成站点列表。如果用户是_人员,他们将获得所有站点,如果不是,他们将获得与用户属于同一公司的站点

视图永远不会返回is_staff=True。即使他们是

models.py

class Site(models.Model):
    site_name = models.CharField(max_length=100, blank=False, null=False)

    def __unicode__(self):
        return self.site_name


class Company(models.Model):
    name = models.CharField(max_length=100, blank=False, null=False)

    users = models.ManyToManyField(User)
    sites = models.ManyToManyField(Site)

    def __unicode__(self):
        return self.name
views.py

class SiteList(ListView):
    model = Company
    paginate_by = 25

    def get_queryset(self):
        if self.request.user.is_staff:
            return Company.objects.all()

        else:
            user = User.objects.get(id=self.request.user.id)
            return Company.objects.filter(users=user.id)
company_list.html:

{% for company in company_list %}
   {% for s in company.sites.all %}
        {{ s.site_name }}
   {% endfor %}
{% endfor %}

可能是
Company\u objects.filter(users\u id=user.id)
?我最初就是这样做的。同样的结果,您必须确保
company\u list
是模板中正确的变量名。如果使用错误的变量名,Django模板不会给您错误。您不需要使用
user=user.objects.get(id=self.request.user.id)
。只需使用
self.request.user
。如果在
get\u queryset
方法中打印/记录用户,例如
print(self.request.user)
print(self.request.user.is\u staff)