Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-现有视图和url上的CreateView表单_Python_Django_Forms_Url_Modelform - Fatal编程技术网

Python Django-现有视图和url上的CreateView表单

Python Django-现有视图和url上的CreateView表单,python,django,forms,url,modelform,Python,Django,Forms,Url,Modelform,我在我的项目CRUD中使用django通用视图。CreateView类使用以下url工作: url.py url(r'^create', BookCreate.as_view(model=Books, template_name='Myproj/book_create.html'), name='book_create'), url(r'^author/(?P<id>[0-9]{1,})/$', author_view_handler

我在我的项目CRUD中使用django通用视图。CreateView类使用以下url工作:

url.py

url(r'^create', BookCreate.as_view(model=Books, template_name='Myproj/book_create.html'),                         name='book_create'),
url(r'^author/(?P<id>[0-9]{1,})/$', author_view_handler, name='author_view'),
如果我进入www.mywebsite.com/create,表单就会显示出我想要的样子

我的问题是,我想将表单合并到另一个页面上,该页面已经有url、视图和模板。url与下面的url类似:

url.py

url(r'^create', BookCreate.as_view(model=Books, template_name='Myproj/book_create.html'),                         name='book_create'),
url(r'^author/(?P<id>[0-9]{1,})/$', author_view_handler, name='author_view'),
url(r'^author/(?P[0-9]{1,})/$,author\u view\u handler,name='author\u view'),

如何解决此问题?

CreateView
使用
ModelForm
。如果您还想使用它,您需要自己创建一个图书模型表单,如下所示:

from django.forms import ModelForm class BookModelForm(ModelForm): pass
以上只是将表单传递给author\u view\u handler视图,不包含任何表单处理代码。

您对在非通用视图中使用表单有多熟悉?换句话说,您只需要知道如何获取表单类,还是需要知道如何在
author\u view\u handler
视图中处理表单?我知道如何在非泛型视图中处理表单,我的问题从泛型视图开始。CreateView在重定向到模板的
/create
url处为我创建表单。我的问题是我想转到
作者/id
url并查看那里的表单。似乎表单只需要一个URL。泛型视图使用普通的
模型表单
,因此它应该像在显式类中或使用
ModelForm\u工厂
书籍
模型创建一个URL一样简单,然后在
作者视图处理程序
中实例化一个空的URL。我可能会从表单中省略跟踪作者和书籍之间关系的任何字段,并将其设置在我的视图中。好的,现在我的问题改变了。我如何在
author\u view\u handler
视图中调用BookCreate(CreateView)类,知道我必须将模型(Books)的名称传递给它?我只是在url中传递模型。我需要将其传递给模板吗?您不需要调用create类,而是调用
modelform
上的
save
方法。如果书籍与作者之间存在多对一关系,则可能使用
commit=False
,因此可以设置“作者”字段,然后保存模型。看见至于将其传递到模板,只需将其放在您的上下文中即可。或者OP希望将多个url+视图+模板组合到一个模板中,类似这样的内容我已经在书中使用了一个模型表单。我只是不知道如何将它传递给
作者视图\u处理程序
视图。我想访问
作者/id
url并查看那里的表单。如何将其传递到上下文?