Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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 createview权限_Django - Fatal编程技术网

Django createview权限

Django createview权限,django,Django,我有一个模型的createview。它创建的对象基于已输入的先前模型 在允许createview可用之前,我如何查询先前模型的存在 非常感谢将表单添加到您的视图中,并在保存前检查记录是否存在 class CreateObject(CreateView): ... def form_valid(self, form): # prevent initial save self.object = form.save(commit=False)

我有一个模型的createview。它创建的对象基于已输入的先前模型

在允许createview可用之前,我如何查询先前模型的存在


非常感谢

将表单添加到您的视图中,并在保存前检查记录是否存在

class CreateObject(CreateView):
    ...
    def form_valid(self, form):
        # prevent initial save   
        self.object = form.save(commit=False)
        #query for existing record
        existing_record = Record.objects.filter(...)
        if existing_record:
            # send error message and redirect back to 
            messages.add_message(request, messages.ERROR, 'need existing objects...')
            return redirect('app:view') 
        else
            self.object.save()
            return HttpResponseRedirect(self.get_success_url())  

将form_valid添加到视图中,并在保存前检查记录是否存在

class CreateObject(CreateView):
    ...
    def form_valid(self, form):
        # prevent initial save   
        self.object = form.save(commit=False)
        #query for existing record
        existing_record = Record.objects.filter(...)
        if existing_record:
            # send error message and redirect back to 
            messages.add_message(request, messages.ERROR, 'need existing objects...')
            return redirect('app:view') 
        else
            self.object.save()
            return HttpResponseRedirect(self.get_success_url())  

谢谢你的回复。这确实有效,但希望阻止用户提交表单,以免浪费他们的时间

我们已经想出了这个混搭,似乎做的工作:

class CompanyTest(object):
    def dispatch(self, request, *args, **kwargs):
        if not Company.objects.filter(account=request.user).exists():
            return redirect('company-list')
        return super(CompanyTest, self).dispatch(request, *args, **kwargs)

谢谢你的回复。这确实有效,但希望阻止用户提交表单,以免浪费他们的时间

我们已经想出了这个混搭,似乎做的工作:

class CompanyTest(object):
    def dispatch(self, request, *args, **kwargs):
        if not Company.objects.filter(account=request.user).exists():
            return redirect('company-list')
        return super(CompanyTest, self).dispatch(request, *args, **kwargs)