def new_poll(request): if request.method == "POST": option_list = request.POST.getlist('option[]') error = [] options = [] error2 = [] if len(option_list) > 10: error2.append(u'Слишком много вариантов, хакир') if len(option_list) < 2: error2.append(u'Слишком мало вариантов, хакир') print len(option_list) print len(error2) for key, value in enumerate(option_list): if len(value) < 2 or len(value) > 15: error.append(key) options.append([key, value]) if len(error) > 0 or len(error2) > 0: c = Context({ 'user': request.user, 'head_menu': 'vote_new', 'error': error, 'error2': error2, 'options': options, 'post': 1, 'poll_name': request.POST.get('poll_name') }) c.update(csrf(request)) return render_to_response('new_poll.html', c) else: poll = Polls() poll.user = request.user poll.name = request.POST.get('poll_name') poll.save() last_id = Polls.objects.latest('id') for key, value in options: option = Options() option.poll = last_id option.name = value option.count = 0 option.save() cache.delete('all_polls') return HttpResponseRedirect('/poll/%s/' % (last_id.id)) else: options = [] [options.append(i) for i in xrange(1, 6)] c = Context({ 'user': request.user, 'head_menu': 'vote_new', 'options': options }) c.update(csrf(request)) return render_to_response('new_poll.html', c)