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
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)
|
|
|
|
|
|
|