Код ниже возвращает администратора на страницу с формой в случае невалидной формы и в случае если администратор пытается поместить в архив товар расположенный на главной. Для обработки обоих ситуаций используется одинаковый
return
, что нарушает принцип DRY. Как в подобном случае избавится от дублирования кода?
if form.is_valid():
if all([hasattr(item, 'itemonmainpage'), form.cleaned_data['is_archived']]):
messages.warning(
request, 'Нельзя поместить в архив товар размещённый на главной странице'
)
return render(
request, 'showcase/item_update_form.html', {'form': form}
)
else:
return super().post(request, *args, **kwargs)
return render(
request, 'showcase/item_update_form.html', {'form': form}
)