Django CBV UserPassesTestMixin test_func 不是 运行
Django CBV UserPassesTestMixin test_func not running
test_func 根本没有出现在 运行 面前。现在我只是检查用户是否是员工,作为一个简单的测试。这是代码:
class MyModelCreate(CreateView, UserPassesTestMixin):
def test_func(self):
print("checking if user passes test....")
return self.request.user.is_staff
model = MyModel
....
但是,当我转到此模型的创建页面时,任何人都可以编辑它,python 控制台没有输出显示 test_func 运行s .
视图名为:
urlpatterns = [
...
url(r'^create/$', views.MyModelCreate.as_view(), name='my_model_create'),
]
在 python 中,classes 的顺序很重要,因为它们的方法会相互覆盖
您基于 class 的视图应如下所示:
class MyModelCreate(UserPassesTestMixin, CreateView):
def test_func(self):
print("checking if user passes test....")
return self.request.user.is_staff
model = MyModel
....
test_func 根本没有出现在 运行 面前。现在我只是检查用户是否是员工,作为一个简单的测试。这是代码:
class MyModelCreate(CreateView, UserPassesTestMixin):
def test_func(self):
print("checking if user passes test....")
return self.request.user.is_staff
model = MyModel
....
但是,当我转到此模型的创建页面时,任何人都可以编辑它,python 控制台没有输出显示 test_func 运行s .
视图名为:
urlpatterns = [
...
url(r'^create/$', views.MyModelCreate.as_view(), name='my_model_create'),
]
在 python 中,classes 的顺序很重要,因为它们的方法会相互覆盖 您基于 class 的视图应如下所示:
class MyModelCreate(UserPassesTestMixin, CreateView):
def test_func(self):
print("checking if user passes test....")
return self.request.user.is_staff
model = MyModel
....