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