import sys from django.http import HttpResponse from django.template import loader from django.shortcuts import render from .form import * def get_class(classname): """ Retrieve a class object by its name. :param classname: Name of the class to retrieve. :return: The class object with the given name. """ return getattr(sys.modules[__name__], classname) def index(request): return render(request, 'ugssim/home.html') def planungsparameter(request): """ Die Erzeugung der Webformulare soll dynamisch auf Basis der Model und Form Klassen geschehen. Dafür wird eine Liste mit den Klassennamen der Models angelegt über die iteriert wird über die Funktion get_class(classname) erhält man die Klassenobjekte modelclass für das Model formclass für das Formular über diese wird dann iterierter. """ formlist = {} modellist = ['Address', 'Summary', 'CompanyData'] for modelname in modellist: modelclass = get_class(modelname) formclass = get_class(modelname + 'Form') if request.method == "POST": if modelname + 'Button' in request.POST: form = formclass(request.POST) form.fields.pop('description') if form.is_valid(): modelclass.objects.update(**form.cleaned_data) else: # initial.update(model_to_dict(modelclass.objects.filter(id=1).first())) form = formclass() formpart = { 'modelname': modelname, 'form': form, 'heading': 'Mandatendaten2', 'description': 'Dict Descriptiopn' } formlist.update({modelname + "form": formpart}) context = { 'formlist': formlist } return render(request, 'planungsparameter/planungsparameter.html', context)