2014-10-31 81 views
-1

我在我的項目CRUD中使用django通用視圖。該CreateView的類使用以下網址的工作:Django - 在現有視圖和網址上創建視圖

urls.py

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

如果我去www.mywebsite.com/create形式出現我是多麼想這樣做。

我的問題是,我想將表單合併到另一個頁面上,該頁面已經有一個url,一個視圖和一個模板。 URL是像一個波紋管:

urls.py

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

我怎樣才能解決這個問題?

+0

您對於使用非通用視圖中的表單有多熟悉?換句話說,你只需要知道如何獲得表單類,或者你需要知道如何處理'author_view_handler'視圖中的表單? – 2014-10-31 17:22:37

+0

我知道如何在非泛型視圖中處理表單,我的問題始於通用視圖。 CreateView爲'/ create' url創建了一個表單,該表單重定向到一個模板。我的問題是我想去'author/id'url並看到那裏的表單。看起來這個表單只需要一個URL給他。 – Nunovsky 2014-10-31 17:36:48

+0

通用視圖使用簡單的'ModelForm',所以它應該像在'Books'模型中爲顯式類或使用'modelform_factory'創建一個簡單的視圖一樣簡單,然後在'author_view_handler'中實例化一個空視圖。我可能會忽略作者和書籍之間的任何字段跟蹤關係,並在我的視圖中進行設置。 – 2014-10-31 17:48:40

回答

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視圖和不包含包含任何表單處理代碼。

+0

或者OP可能希望在一個模板中合併多個網址+查看+模板,如https://groups.google.com/forum/#!topic/django-users/uJ_fzpPzUkE – madzohan 2014-10-31 17:29:12

+0

我已經使用ModelForm作爲書籍。我只是不知道如何將它傳遞給'author_view_handler'視圖。我想訪問'author/id'網址並查看錶單。我如何將它傳遞給上下文? – Nunovsky 2014-10-31 17:39:29