2013-12-15 52 views
0

如何在django中獲取我呈現的html文本?我需要它,因爲我想在另一個模板變量中使用html文本。我的網站有一個主要模板,它有兩個第一部分是內容,其他是鏈接和...的列。在內容中,我想把我的呈現HTML,如登錄表單,新帖子和...。我怎樣才能做到這一點?我的代碼的一部分是在這裏:geting在django中呈現html文本

def loginfrm(request): 
    return render(request,'main.html', 
         {'content':renderdhtmltext()), 
          'colum':'links',} 

我的確切目的是定義像renderdhtmltext()的功能。 那裏是否有任何django內置?

回答

0

render返回的是HttpResponse的實例,您可以通過response.content訪問html內容。

response = another_view(request) 
rendered_html_text = response.content 

HttpResponse

更新Doc這是更好地定義你的base.html並擴展它,放什麼在共同的基礎。

+0

技術上正確但完全沒用的答案。 –

+0

我不認爲'response.content'與他所要求的不匹配。 – iMom0

+0

你的回答爲我工作,但有沒有更好的辦法?我認爲這有點不好。 –

1

處理網站內容的正確方法是編寫自定義模板標籤,以便視圖不必處理它。你的觀點應該只處理視圖特定的東西。

+0

您能否介紹一下如何在顯示內容時使用模板自定義標籤。我是django的業餘愛好者,我不知道如何去做。 –

+0

templatetag只是一些Python代碼,它可以向模板的上下文中添加變量(無論是Python對象),還是返回文本或HTML以插入到模板中。您可以在FineManual(tm)中找到更多信息:https://docs.djangoproject.com/en/1.6/howto/custom-template-tags/#writing-custom-template-tags。不要害怕明顯的複雜性,並進一步閱讀,有兩個最常見的情況(包含標籤和分配標籤)的捷徑。 –

+1

不需要自定義標籤,模板繼承有幫助。 – iMom0