亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

詳解Python的Django框架中inclusion_tag的使用

系統 2012 0

另外一類常用的模板標簽是通過渲染 其他 模板顯示數據的。 比如說,Django的后臺管理界面,它使用了自定義的模板標簽來顯示新增/編輯表單頁面下部的按鈕。 那些按鈕看起來總是一樣的,但是鏈接卻隨著所編輯的對象的不同而改變。 這就是一個使用小模板很好的例子,這些小模板就是當前對象的詳細信息。

這些排序標簽被稱為 包含標簽 。如何寫包含標簽最好通過舉例來說明。 讓我們來寫一個能夠產生指定作者對象的書籍清單的標簽。 我們將這樣利用標簽:

            
{% books_for_author author %}


          

結果將會像下面這樣:

            
  • The Cat In The Hat
  • Hop On Pop
  • Green Eggs And Ham

首先,我們定義一個函數,通過給定的參數生成一個字典形式的結果。 需要注意的是,我們只需要返回字典類型的結果就行了,不需要返回更復雜的東西。 這將被用來作為模板片段的內容:

            
def books_for_author(author):
  books = Book.objects.filter(authors__id=author.id)
  return {'books': books}


          

接下來,我們創建用于渲染標簽輸出的模板。 在我們的例子中,模板很簡單:

            
    {% for book in books %}
  • {{ book.title }}
  • {% endfor %}

最后,我們通過對一個 Library 對象使用 inclusion_tag() 方法來創建并注冊這個包含標簽。

在我們的例子中,如果先前的模板在 polls/result_snippet.html 文件中,那么我們這樣注冊標簽:

            
register.inclusion_tag('book_snippet.html')(books_for_author)


          

Python 2.4裝飾器語法也能正常工作,所以我們可以這樣寫:

            
@register.inclusion_tag('book_snippet.html')
def books_for_author(author):
  # ...


          

有時候,你的包含標簽需要訪問父模板的context。 為了解決這個問題,Django為包含標簽提供了一個 takes_context 選項。 如果你在創建模板標簽時,指明了這個選項,這個標簽就不需要參數,并且下面的Python函數會帶一個參數: 就是當這個標簽被調用時的模板context。

例如,你正在寫一個包含標簽,該標簽包含有指向主頁的 home_link 和 home_title 變量。 Python函數會像這樣:

            
@register.inclusion_tag('link.html', takes_context=True)
def jump_link(context):
  return {
    'link': context['home_link'],
    'title': context['home_title'],
  }


          

(注意函數的第一個參數 必須 是 context 。)

模板 link.html 可能包含下面的東西:

            
Jump directly to 
            
              {{ title }}
            
            .


          

然后您想使用自定義標簽時,就可以加載它的庫,然后不帶參數地調用它,就像這樣:

            
{% jump_link %}

          


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 中文字幕第13亚洲另类 | 亚洲欧美日韩另类 | 狠狠操天天| 午夜影院欧美 | 国产日韩高清一区二区三区 | 一道精品视频一区二区三区图片 | 免费观看91视频 | 91尤物国产尤物福利 | 妇女网站爱嘿嘿视频免费观看 | 国产毛片毛片精品天天看 | 久久精品国产一区二区三区肥胖 | 日本深夜影院 | 天天射天天色天天干 | 天天想夜夜操 | 99ri精品视频在线观看播放 | 亚洲人人草 | 久久青草91免费观看 | 91热成人精品国产免费 | 日韩 三级 | 一级美国乱色毛片 | 欧美在线综合 | 亚洲精品国产第一区二区图片 | 精品久久久久久国产免费了 | 美女国产精品 | 精品国产91久久久久久久a | 国产亚洲综合一区在线 | 亚洲精品福利一区二区三区 | 亚洲手机看片 | 成人免费视频在线 | 国产精品高清一区二区 | 日韩欧美中文 | 精品久久久久久中文字幕专区 | 宅男看片午夜大片啪啪mv | 狠狠2020 | 国产福利一区二区三区在线视频 | 日本中文在线观看 | 国产在线精彩视频 | 欧美成人手机在线视频 | 99久久亚洲精品影院 | 久久99深爱久久99精品 | 亚洲狠狠婷婷综合久久久久图片 |