Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.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
Python ';teamview';对象没有属性';获取对象';_Python_Django_Django Views_Mixins - Fatal编程技术网

Python ';teamview';对象没有属性';获取对象';

Python ';teamview';对象没有属性';获取对象';,python,django,django-views,mixins,Python,Django,Django Views,Mixins,我的UserPasseStMixin有问题,我想限制视图查看分配给经理的人员。这给了我一个“teamview”对象没有属性“get_object”的错误 以下是我的看法.py: from django.shortcuts import render from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin from django.views.generic import ListView, Cre

我的UserPasseStMixin有问题,我想限制视图查看分配给经理的人员。这给了我一个“teamview”对象没有属性“get_object”的错误

以下是我的看法.py:

from django.shortcuts import render
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
from django.views.generic import ListView, CreateView, DetailView
from .models import Job, Member
from profiles.models import User
from django.contrib.auth.decorators import login_required
# Create your views here.


class jobs(LoginRequiredMixin,ListView):
    model = Job
    template_name = 'users/user_jobs.html'
    context_object_name = 'jobs'

    def get_queryset(self):
        return Job.objects.filter(member__member=self.request.user)


class createdjobs(LoginRequiredMixin,ListView):
    model = Job
    template_name = 'users/manager_jobs.html'
    context_object_name = 'jobs'

    def get_queryset(self):
        return Job.objects.filter(manager__manager=self.request.user)


class teamview(LoginRequiredMixin,UserPassesTestMixin,ListView):
    model = Member
    template_name = 'users/manage_team.html'
    context_object_name = 'members'


    def test_func(self):
        return self.get_object().manager == self.request.user

    def get_queryset(self):
        return Member.objects.filter(manager__manager=self.request.user)



class jobdetail(LoginRequiredMixin,DetailView):
    model = Job


class createjob (LoginRequiredMixin,UserPassesTestMixin,CreateView):
    model = Job
    fields = ['member','title', 'description', 'file']

    def form_valid(self,form):
        form.instance.manager=manager.objects.get(manager=self.request.user)
        return super().form_valid(form)

    def test_func(self):
        return self.get_object().manager == self.request.user

希望您能帮助我解决这个TIA。

在您的
类团队视图(…,…,ListView)
中,您正在继承
ListView
ListView
没有
get\u object()
,因为存在多个对象。这是一个非常适合检查类视图中所有可用方法的站点:


旁注:我建议您在编辑器中查看并安装一个过梁,以遵循最佳实践。这将帮助其他开发人员阅读您的代码。

什么是好的替代品?Queryset可以工作,但在我执行测试函数时它不工作…是.getobjects吗?我是说self.objects?解决方案取决于您尝试使用
def test_func(self):返回self.get_object().manager==self.request.user
?我试图从中得到的是首先检查用户是否在manager模型下或其实例下。listview团队视图仅限于经理类别下的用户。