我正在为一个相当复杂的模型开发一个前端表单,我仍然是新的脆形式.
我的Proposal模型使用两个m2m字段用于部分和要求,每个字段都有自定义的直通表.我正在使用带有此模板的formset来呈现提案表单:
{% crispy form %}{% crispy sectionmap_formset sectionmap_formset_helper %}{% crispy requirementmap_formset requirementmap_formset_helper %}
帮助器设置如下:
class MapFormSetHelper(FormHelper): template = 'bootstrap/table_inline_formset.html' def __init__(self, form=None): super(MapFormSetHelper, self).__init__(form) self.disable_csrf = True self.form_method = 'post' self.form_tag = False class SectionMapFormSetHelper(MapFormSetHelper): def __init__(self, form=None): super(SectionMapFormSetHelper, self).__init__(form) self.layout = Layout('order', 'section', 'placement') class RequirementMapFormSetHelper(MapFormSetHelper): def __init__(self, form=None): super(RequirementMapFormSetHelper, self).__init__(form) self.layout = Layout('order', 'requirement', 'selected_option')
并添加到上下文中:
def get_context_data(self, **kwargs): context = super(ProposalUpdateView, self).get_context_data(**kwargs) proposal = context['proposal'] # Add formsets for model_class, context_key, formset_class in ( (pm.ProposalSectionMap, 'sectionmap_formset', forms.SectionMapFormSet), (pm.ProposalRequirementMap, 'requirementmap_formset', forms.RequirementMapFormSet)): qs = model_class.objects.filter(proposal=proposal) context[context_key] = formset_class(queryset=qs) # Add helpers context['sectionmap_formset_helper'] = forms.SectionMapFormSetHelper() context['requirementmap_formset_helper'] = forms.RequirementMapFormSetHelper() return context
表格布局和form_tag位被正确选取(结果看起来不错)但self.layout设置无效.
问题是所有的formset字段仍在显示 - 虽然调用了行并且正确的帮助器就位,但就好像布局被忽略了(我尝试将html添加到布局中,它是没有显示).
谁能告诉我我做错了什么?请随意指出我正确的文档 - 我对它无足轻重,我可能错过了一些明显的东西.