使用内联表单集创建模型和相关模型
使用内联formset docs中的示例,我能够(使用modelforms)编辑属于特定模型的对象。我一直在尝试使用相同的模式来 使用内联表单集创建新对象,但是一直无法清除我的头来为此目的提供工作视图。
使用与上述链接相同的示例,我将如何创建“作者”模型的新实例及其相关的“书”对象?
回答:
首先,创建一个Author模型表单。
author_form = AuthorModelForm()
然后创建一个虚拟作者对象:
author = Author()
然后使用伪作者创建内联表单集,如下所示:
formset = BookFormSet(instance=author) #since author is empty, this formset will just be empty forms
将其发送到模板。数据返回到视图后,你可以创建作者:
author = AuthorModelForm(request.POST)created_author = author.save() # in practice make sure it's valid first
现在,将内联表单集与新创建的作者挂钩,然后保存:
formset = BookFormSet(request.POST, instance=created_author)formset.save() #again, make sure it's valid first
编辑:
要在新表单上没有复选框,请使用以下模板:
{% for form in formset.forms %} <table>
{% for field in form %}
<tr><th>{{field.label_tag}}</th><td>{{field}}{{field.errors}}</td></tr>
{% endfor %}
{% if form.pk %} {# empty forms do not have a pk #}
<tr><th>Delete?</th><td>{{field.DELETE}}</td></tr>
{% endif %}
</table>
{% endfor %}
以上是 使用内联表单集创建模型和相关模型 的全部内容, 来源链接: utcz.com/qa/421264.html