def report(request, report_id): context = RequestContext(request) report = get_object_or_404(CommcareReport, pk=report_id) if request.POST: indicator = request.POST.get('indicator', None) if indicator is not None: meta_data, created = ReportMetaData.objects.get_or_create( report=report, key='indicator', value=indicator) meta_data.save() indicators = ReportMetaData.objects.filter( report=report, key="indicator").values_list('value', flat=True) indicator_list = get_indicator_list() _indicators = \ [item for item in indicator_list if item['name'] in indicators] context.indicators = generate_indicators(_indicators, report) # do not include already assigned indicators indicator_list =\ [item for item in indicator_list if item['name'] not in indicators] context.indicator_list = indicator_list context.report = report return render(request, 'report.html', context_instance=context)