Django - 现有视图和网址上的CreateView表单

时间:2014-10-31 17:01:49

标签: python django forms url modelform

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

urls.py

url(r'^create', BookCreate.as_view(model=Books, template_name='Myproj/book_create.html'),                         name='book_create'),

如果我去www.mywebsite.com/create,表格就会出现我想要的样子。

我的问题是我希望将表单合并到另一个页面上,该页面已经有一个url,一个视图和一个模板。网址就像下面的那个:

urls.py

url(r'^author/(?P<id>[0-9]{1,})/$', author_view_handler, name='author_view'),

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

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

from django.forms import ModelForm

class BookModelForm(ModelForm):
    pass

然后将其form=BookModelForm()实例化,并将其传递到author_view_handler视图的上下文。

但是我不确定你为什么要这样做......

更新:要将其传递给您的视图,请使用

from django.shortcuts import render

def author_view_handler(request):
    form = BookModelForm()
    return render(request, 'author_view_handler.html', {"form": form},

上面只是将表单传递给author_view_handler视图,包含任何表单处理代码。