我想知道是否有可能编写一个更通用的表单来用作模板,这样在渲染过程中它会根据需要创建多个表单?如果不是,如何编写代码来创建N个表单,其中数字取决于某些查询集的结果,并且多对多字段中的选项也取决于问题集?我知道下面的代码不起作用我将它留作更多的sudo代码 forms.py:
class OptionalSFRForm(forms.Form):
selected_optional_sfr = forms.ModelMultipleChoiceField(queryset=sfrs_models.ProtectionProfile.objects.all())
def Custom(QueryPP):
selected_optional_sfr = forms.ModelMultipleChoiceField(queryset=QueryPP.Optional_SFR.objects.all())
models.py
class ST_Title(models.Model):
Selected_SFR = models.ManyToManyField(sfrs_models.SFR, related_name='Selected_SFR')
AttachedPPs = models.ManyToManyField(sfrs_models.ProtectionProfile, related_name='ST_PPs')
sfrs.models.py
class ProtectionProfile(models.Model):
Optional_SFR = models.ManyToManyField(SFR, related_name='Optional')
模板:
{% for AttachedPPs in ST_Title.AttachedPPs.all %}
<form action="{% url 'SecurityTarget:stview' ST_Title.id %}" method="post" id="conformanceform">
{% csrf_token %}
{{OPTSFRS.Custom(AttachedPPs)}}
</form>