django – 使用Inline formsets创建模型和相关模型

[我也发布在Django users | Google Groups也。]

使用inline formset docs中的示例,我能够编辑属于特定模型的对象(使用
模型)。我一直试图遵循相同的模式
使用内联formets创建新对象,但已经无法
清楚我的头足以带来一个工作观点,为此目的。

使用与上述链接相同的示例,我将如何去
创建一个“作者”模型及其相关的新实例
“书”对象?

首先,创建一个作者模型表单。

author_form = AuthorModelForm()

然后创建一个虚拟作者对象:

author = Author()

然后使用虚拟作者创建一个内联formset如下:

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,然后保存:

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 %}
http://stackoverflow.com/questions/1113047/creating-a-model-and-related-models-with-inline-formsets

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:django – 使用Inline formsets创建模型和相关模型