首页 > 解决方案 > 如何将表单动态添加到 Django 表单集?

问题描述

我无法理解 create_book_normal() 在此代码中的工作原理。

def create_book_normal(request):
    template_name = 'store/create_normal.html'
    heading_message = 'Formset Demo'

if request.method == 'GET':
    formset = BookFormset(request.GET or None)
elif request.method == 'POST':
    formset = BookFormset(request.POST)
    if formset.is_valid():
        for form in formset:
            name = form.cleaned_data.get('name')
            myuser = form.cleaned_data.get('myuser')
            # save book instance
            if name:
                Book(name=name,myuser=myuser).save()

请解释一下这个重定向是如何工作的。#store:book_list

        return redirect('store:book_list')

return render(request, template_name, {
    'formset': formset,
    'heading': heading_message,
})

值如何存储在 store:book_list 中?

如果我将 book 更改为 Book,那么它会显示这样的错误 - NoReverseMatch at /store/book/create_normal

标签: pythondjangoformset

解决方案


当调用Django 时,正在对命名空间中的urlredirect('store:book_list')进行反向查找。'book-list'store

查看您的 Django 项目,看看是否有一个名为的应用程序store以及其中的一个urls.py文件。您应该看到urlpatternwhere name='book_list'。然后重定向将在该 urlpattern 中运行视图。

查看django urls 上的官方文档


推荐阅读