def post(self, request, id=None, format=None): form = CarForm(request.DATA, user=request.user) if form.is_valid(): obj = form.save(commit=False) obj.created_by = request.user # p is the flag for publish if request.DATA.get("status") == "P": obj.status = obj.STATUS_PENDING obj.save() if obj.status == obj.STATUS_PENDING: # when post is published obj.primary_image = Image.objects.get(id=request.DATA["primary_image"]) obj.save() self._update_images(request, obj) self._send_notification(obj) messages.info(request, _("Your car has been successfully submitted and is currently pending approval.")) return Response({"redirect": reverse("vehicle-index")}) response = {"id": obj.id} return Response(response, mimetype="application/json", status=status.HTTP_201_CREATED) else: return Response({"errors": form.errors}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def new(request): form = None try: if request.method == 'POST': if request.POST.get('id'): #edit operations pass form = CarForm(request.POST, user=request.user) if form.is_valid(): obj = form.save(commit=False) obj.created_by = request.user obj.save() # save record and redirect return redirect('/') else: # edit mode for draft form = CarForm(instance=Car.objects.get(status=Car.STATUS_DRAFT, created_by=request.user), user=request.user) model_lookup_form = ModelLookUpForm() model_lookup_i18n_form = ModelLookUpI18nForm() return render_to_response( 'vehicle/new.html', { 'model_lookup_form': model_lookup_form, 'model_lookup_i18n_form': model_lookup_i18n_form, 'form': form, }, RequestContext(request) ) except (Car.DoesNotExist, Car.MultipleObjectsReturned) as e: # new form (no drafts found) model_lookup_form = ModelLookUpForm() model_lookup_i18n_form = ModelLookUpI18nForm() form = CarForm(user=request.user) return render_to_response( 'vehicle/new.html', { 'model_lookup_form': model_lookup_form, 'model_lookup_i18n_form': model_lookup_i18n_form, 'form': form, }, RequestContext(request) ) except Exception as e: logging.error(str(e)) raise Http404 finally: pass
def car(request, car_id=None, template="car/car.html", context={}): car_object = None car_form = None if car_id: car_object = get_object_or_404(Car, pk=car_id) car_form = CarForm(request.POST or None, instance=car_object) if request.method == 'POST': car_object = car_form.save() return redirect('/car') context['car_id'] = car_id context['car_object'] = car_object context['car_form'] = car_form return render(request, template, context)