我有一个类似 cms 的页面,用户可以在其中创建自己的简单页面,包括标题、图像和一些内容。我使用的表格如下:
class PageForm(forms.Form):
"""
Helper form for the cms backoffice page.
"""
title = forms.CharField(max_length=50)
preview_image = forms.ImageField(required=False)
content = forms.CharField(widget=TinyMCE(attrs={'cols': 20, 'rows': 10}))
但现在我想通过向页面添加多个部分来增强这一点。问题是这些是可选的,所以用户可以选择只留下一个部分,在这种情况下,这个表单应该这样做,但是有一个按钮“添加部分”或者可以向 UI 添加额外的 TinyMCE 和 ImageField 的东西,也删除部分将删除一个。
现在我看到它的方式很长,但是有什么方法可以使用 django 表单来建模吗?我现在的想法是,如果我将表单数量限制为给定数量,我可以将 content_i 和 preview_image_i 添加到表单中,然后检查提交了哪些表单。那应该有效吗?有没有办法在没有最大数量的部分的情况下做到这一点?否则,如果我添加 100 个很少完全使用的 CharFields / ImageFields(如果有的话),我会增加多少开销。
还是我应该为此放弃 django 表单并进行一些自定义处理?
谢谢