def create(request): topics = Topic.objects.all() if request.user.id == None: return HttpResponse('please login') if request.method == 'POST': requestpost = request.POST.getlist('choice') # returns topic id requestweight = request.POST.getlist( 'weight') # returns a list of weights form = ChallengeForm(request.POST) if form.is_valid(): challenge = form.save(commit=False) exist = Challenge.objects.filter(name=challenge.name) if not exist.exists(): challenge.save() a = Author() a.user = request.user a.challenge = challenge a.timestamp = datetime.datetime.now() a.save() for i in range(0, len(requestpost)): idx = int(requestpost[i]) topicweight = 0 for j in range(0, len(requestweight)): if requestweight[j] != '': topicweight = requestweight[j] requestweight[j] = '' break ct = ChallengeTopic() ct.challenge = challenge ct.topic = Topic.objects.get(pk=idx) ct.weight = float(topicweight) ct.save() return redirect('thanks/') else: return HttpResponse('Challenge Name exists') else: form = ChallengeForm() return render(request, 'challenge/create.html', { 'form': form, 'topics': topics })