我将在这里给出一个答案,这可能会简化问题。如果您实际上有近 100 个表格并且需要全部编码。也许您可以声明某种全局字典或数组,并在每个表单定义的末尾,将它们包含在其中,例如:
# a dict this way category.id -> form class
FORM_STORAGE = {}
Form1(forms.Form)
#fields
#methods
FORM_STORAGE[1] = Form1
Form2(forms.Form)
#fields
#methods
FORM_STORAGE[2] = Form2
...
然后在您的视图中,您可能会收到一个GET参数,该参数正是需要呈现的类别,而不是:
if category.id == 1:
# RENDER FORM1
elif category.id == 2:
# RENDER FORM2
elif category.id == 3:
# RENDER FORM3
....
您可以执行以下操作:
# RENDER FORM
form = FORM_STORAGE[category.id]()
在那里,您在一百行或更多行代码中减少了您的视图。
这是一个非常简化版的问题,很有可能可以做更多的改进,特别是在百表的声明上。
希望这会带来一些光明。