def post(self, request): data = json.loads(request.POST.get('r')) slug = slugify(data.get('slug', '')) try: survey = Survey.objects.create(slug=slug, title=data.get('title', ''), description=data.get('description', '')) except IntegrityError: return HttpResponse(json.dumps({'status': 'failure', 'error': _('That SLUG already exists')}), mimetype='application/json') questions = data.get('questions', []) Question.add_questions(questions, survey) return HttpResponse(json.dumps({'status': 'success', 'url': reverse('surveydashboard', args=[survey.slug])}), mimetype='application/json')
def post(self, request, slug): survey = self.get_object() data = json.loads(request.POST.get('r')) questions = data.get('questions', []) # delete existing questions # due to cascading deletes, this will also delete choices survey.question_set.all().delete() # edit the title if it has changed survey.title = data.get('title', '') survey.description = data.get('description', '') # edit slug if it has changed survey.slug = slugify(data.get('slug', '')) try: survey.save() except IntegrityError: return HttpResponse(json.dumps({'status': 'failure', 'error': _('That SLUG already exists')}), mimetype='application/json') Question.add_questions(questions, survey) return HttpResponse(json.dumps({'status': 'success', 'url': reverse('surveydashboard', args=[survey.slug])}), mimetype='application/json')