パイソン - ジャンゴ - 著者を追加

ページbook_list.htmlの下部プラス「著者を追加」リンクで

<!DOCTYPE HTML> 
<HTML LANG = "EN"> 
<HEAD> 
    <メタ文字コード= "UTF-8"> 
    <タイトル>作者列表</ TITLE> 
</ HEAD> 
<BODY> 

<H1>作者列表</ H1 > 

<テーブル境界= "1"> 
    <THEAD> 
    <TR> 
        <TH>#</番目> 
        <TH>番号</番目> 
        <TH>名字</番目> 
        <TH>书籍</番目> 
    </ TR > 
    </ THEAD> 
    <TBODY> 
        {author_listの%における作成者%} 
            <TR> 
            <TD> {{forloop.counter}} </ TD> 
            <TD> {{author.id}} </ TD> 
            <TD> {{author.name}} </ TD> 
            <TD> 
                {author.book.all%で書籍の%} 
                    {%forloop.last%であれば}
                        {{book.title}} 
                    {%他%} 
                        {{book.title}} | 
                    {%のENDIFの%} 
                {%ENDFOR%} 
            </ TD> 
            </ TR> 
        {%ENDFOR%} 
    </ TBODY> 
</ TABLE> 

<a href="/add_author/">添加书籍</a>の

</ BODY > 
</ HTML>

業績:

urls.py内のURLにある「作者の追加」の追加

django.conf.urlsからURLをインポート
django.contribインポート管理者から
app01インポートビューから

urlpatterns = [ 
    #出版社
    、URL(R '^ publisher_list /'、views.publisher_list)
    URL(R '^ add_publisher /'、views.add_publisher )、
    URL(R '^ del_publisher /'、views.del_publisher)、
    URL(R '^ edit_publisher /'、views.edit_publisher)、 书籍
    URL(R '^ book_list /'、views.book_list)、
    URL(R」 ^ add_book /」、views.add_book)、
    URL(R '^ del_book /'、views.del_book)、
    URL(R '^ edit_book /'、views.edit_book)、 の作者の
    URL(R '^ author_list /'、ビュー.author_list)、
    URL(R '^ add_author /'、意見。add_author)、 
]

add_author.htmlページを作成するには、著者を追加します。

<!DOCTYPE HTML> 
<HTML LANG = "EN"> 
<HEAD> 
    <メタ文字コード= "UTF-8"> 
    <タイトル>添加作者</ TITLE> 
</ HEAD> 
<BODY> 

<H1>添加作者</ H1 > 

<フォームアクション= "/ add_author /" METHOD = "POST"> 
    <P> 
        姓名作者:の<input type = "text"の名= "AUTHOR_NAME"> 
    </ P> 

    <P> 
        书籍:
        <複数の名前を選択し=」書籍"> 
            {book_list%以下で書籍の%} 
                <オプション値=" {{book.id}} "> {{book.title}} </オプション> 
            {%ENDFOR%} 
        </選択>
    </ P> 

    <P> 
        の<input type = "提出"値= "提交"> 
    </ P> 
</ FORM> 

</ BODY> 
</ HTML>

最後に著者プラスファンクションviews.pyを追加

HttpResponseと、リダイレクト、からdjango.shortcutsをレンダリングインポート
app01インポートモデルから


のリスト表示するには#を押す
:DEFのpublisher_list(要求を)
    渡し


#新しいプレス追加するには、
DEFのadd_publisher(要求を):
    パス


#が押して削除
DEFのdel_publisher(要求):
    パス


#編集を押し
DEFのedit_publisher(要求):
    パス


#は本のリストを表示
DEFのbook_list(要求を):
    パス


#本を追加
DEF(要求を)add_book:
    パス


#冊削除
:DEF(Request)をdel_book 
    渡し


#編集本を
デフedit_book(要求) :
    パス


著者の#リスト
:DEFのauthor_list(要求)
    すべての著者#クエリを
    = models.Author.objects.all all_author()
    ({ "author_list":all_author}、要求、 "author_list.html")レンダリングを返す


添加#
DEFのadd_author(要求):
    request.method IF == "POST"。 提出されたデータを取得
        new_author_name = request.POST.get(「AUTHOR_NAME」)
        提出されたデータは、GETLISTと、より多くの値がある場合は#
        書籍= request.POST.getlist(「ブック」) を作成著者
        new_author_obj = models.Author.objects .create(名前= new_author_name) 新しい作家や書籍、自動的に提出間の対応を確立する
        new_author_obj.book.set(書籍)
        著者ページのリストに#ジャンプ成功追加するかどうかを確認するために
        、戻りリダイレクト(「/ author_list /」)を
    #照会すべての書籍
    all_books =モデル。Book.objects.all()
    リターンレンダリング(リクエスト、 "add_author.html"、{ "book_list":all_books})

結果:

後に提出さ

データベースで再び見て

 

おすすめ

転載: www.cnblogs.com/sch01ar/p/11240489.html