问题描述
在基于通用 CreateView 类的视图中,我想将 request.user 与某个 modelinstance.user 进行比较,如果用户不匹配,我想引发 404 错误,我该如何实现?我应该修改 generic.CreateView 中的哪个方法以及如何修改?
谢谢!
解决方法
@Ruben Adriannse- 这有效吗?test_func 是一个“检查用户是否通过给定测试”的函数
class RegisterUserView(UserPassesTestMixin,CreateView):
model = ChatUser
template_name = 'login/registration_page.html'
form_class = UserForm
second_form_class = ProfileForm
permission_denied_message = _("You are already registered!")
def test_func(self):
#write your logic here and return True or False based on your logic
return self.request.user.is_anonymous
,
你必须在你的 views.py 文件中使用 mixins
from django.contrib.auth.mixins import LoginRequiredMixin