Python ';teamview';对象没有属性';获取对象';
我的UserPasseStMixin有问题,我想限制视图查看分配给经理的人员。这给了我一个“teamview”对象没有属性“get_object”的错误 以下是我的看法.py: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
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团队视图仅限于经理类别下的用户。