我有两个模型Model1和Model2,其中Model2包含一个其他模型的外键(Say Model3)。我使用django内联formset来添加和编辑与Model1相关的信息。下面是我创建的Formset,字段中的md_attributes是Model3的ForeignKey字段。
inline_form_set = inlineformset_factory(Model1, Model2, fields =('md_attributes', 'val',), max_num=0, can_delete=False, extra=0)
呈现formset的模板是
{{ formset.management_form }}
{% for form in formset %}
{{ form.id }}
{{ form.md_attributes}}: {{ form.val }} <br><br>
{% endfor %}
<input class="btn" type="submit" name="submit" value="Save"><br><br>
<input class="btn" formaction="{% url 'projects:admin_projects_info' project_name %}"
type="submit" name="submit" value="Cancel">
使用上面的模板代码,formset将呈现为Foreignkey选项(Choice Field)和Textinput字段。但我试图实现的是将外键选择作为静态标签呈现在下面的
中选择1:有些价值,
选择2:价值
我尝试创建一个选项列表,然后在for循环(模板)中使用它,但是我的帖子请求正在创建一个错误。我也认为这不是解决这个问题的有效方法。任何有价值的意见都非常受欢迎感谢
答案 0 :(得分:0)
您必须在表单提交时发回POST中的每个字段。例如,如果您尝试将值呈现为<p>{ value }</p>
,则需要在<input type="hidden" value="{ value }"/>
格式中包含某个位置,以便浏览器在POST中包含该字段。
这很容易被恶意用户操纵,因此在数据返回服务器时验证数据非常重要。其中一种方法是将字段的初始值存储在 init 格式中,无论POST中发回的内容如何,都要将其恢复为干净。