我已经编写了django FormView来处理表单集,并且最近向我介绍了“ try try”语法。我有一种感觉,如果我使用“ try try”块,则我的代码将是DRYer,但是我正在使用writers块。您将如何将该格式重新设置为“尝试除外”?
def post(self,request,*args,**kwargs):
formset_post = self.formset(request.POST)
if 'url_fk_id' not in kwargs:
kwargs['url_fk_id'] = self.kwargs.get(self.url_fk_id)
form_fk_id = get_object_or_404(models.Fk,id=kwargs['url_fk_id'])
for form in formset_post:
form.instance.fk_id = form_fk_id
list_of_primary_entries = []
if form.instance.entry_is_primary is True:
if True not in Entry.objects.filter(fk_id=form_fk_id).values()
pass
else:
raise forms.ValidationError("there can only be one primary entry")
list_of_primary_entries.append('4')
if len(list_of_primary_entries) > 1:
raise forms.ValidationError("there can only be one primary entry")
if formset_post.is_valid():
for form in formset_post:
form.save()
else:
return self.form_invalid(formset_post)
print(self.request.POST)
return super().post(self,**kwargs)