PyCharm Entwicklungsumgebung
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

61 lines
1.8 KiB

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)