def create_audit(request): if request.method == 'POST': form = AuditForm(request.POST) form.fields['tags'].queryset = Tag.objects.filter(Q(create_user=request.user) or Q(public=True)) if form.is_valid(): audit = form.save(commit=False) audit.gestor = request.user audit.state = 'INACTIVE' audit.creation_date = time.strftime("%Y-%m-%d") audit.save() form.save_m2m() #Como se puede etiquetar una etiqueta padre y una hija este algoritmo elimina esa redundancia. for tag in audit.tags.all(): if tag.parent in audit.tags.all(): audit.tags.remove(tag) return HttpResponseRedirect('/audits/list/gestor/audits/?page=-1') else: form = AuditForm() form.fields['tags'].queryset = Tag.objects.filter(Q(create_user=request.user) or Q(public=True)) return render(request, 'create_audit.html', {'form': form, 'back_url': '/audits/list/gestor/audits/?page=%s' % request.GET.get('page')})
def edit_audit(request, audit_id): audit = get_object_or_404(Audit, id=audit_id) if request.method == 'POST': form = AuditForm(request.POST, instance=audit) form.fields['tags'].queryset = Tag.objects.filter(Q(create_user=request.user) or Q(public=True)) if form.is_valid(): audit = form.save(commit=False) audit.gestor = request.user audit.state = 'INACTIVE' audit.creation_date = time.strftime("%Y-%m-%d") audit.save() form.save_m2m() #Como se puede etiquetar una etiqueta padre y una hija este algoritmo elimina esa redundancia. for tag in audit.tags.all(): if tag.parent in audit.tags.all(): audit.tags.remove(tag) return HttpResponseRedirect('/audits/audit/details/%d'% audit.id) else: form = AuditForm(instance=audit) form.fields['tags'].queryset = Tag.objects.filter(Q(create_user=request.user) or Q(public=True)) return render(request, 'edit_audit.html', {'form': form, 'back_url': '/audits/audit/details/%s' % audit_id})