from django.shortcuts import render from django.http import HttpResponse from django.template import loader from django.shortcuts import render from .form import * from .models import * from django.forms.models import model_to_dict import sys def get_class(classname): 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 Klassenname der Models angelegt über die iteriert wird Über die Funktion get_class(classname) erhält man das Klassenobjekt modelclass für das Model formclass für das Form über diese wird dann iterierter. Ein Formularfeld 'description' ist bei jedem Formular vorhanden, da die aber nicht in der Datenbank /Model vorhanden ist. Daher wird dieses Feld entfernt (pop) ''' formlist = {} modellist = ['Address', 'Summary', 'CompanyData'] for modelname in modellist: # globals()[ + 'Form'] = get_class( + 'Form') modelclass = get_class(modelname) formclass = get_class(modelname + 'Form') if request.method == "POST": rp = request.POST if modelname + 'Button' in rp: form = formclass(request.POST) form.fields.pop('description') if form.is_valid(): modelclass.objects.update(**form.cleaned_data) else: initial = {'description': 'Tester'} # 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) def companydata(request): template = loader.get_template('ugssim/companydata.html') return HttpResponse(template.render(request)) def input(request): template = loader.get_template('ugssim/companydata.html') return HttpResponse(template.render(request)) ''' def get_name(request): if request.method == 'POST': form = NameForm(request.POST) if form.is_valid(): return HttpResponse(f"Hello, {form.your_name}!") else: form = NameForm() return render(request, 'ugssim/name.html', {'form': form}) ''' def address(request): if request.method == 'POST': form = AddressForm(request.POST) if form.is_valid(): form.save() else: form = AddressForm() return render(request, 'ugssim/address.html', {'form': form})