def post(self, request, *args, **kwargs): if len(Item.objects.filter(user=request.user)) > 500: return redirect('home') form = self.form_class(request.POST) if form.is_valid(): item_data = { k: v for k, v in form.cleaned_data.items() if 'image' not in k } item_data['user'] = request.user categories = item_data.pop('categories') item = Item(**item_data) item.save() item.categories = categories item.save() images_data = { k: v for k, v in form.cleaned_data.items() if 'image' in k } for key in sorted(k for k, v in images_data.items() if v): url = images_data[key] image = Image(item=item, url=url) image.save() send_emails(request, item) response = redirect('view_item', item.id) response['Location'] += '?new=true' return response else: return render(request, 'app/add_item.html', {'form': form})