2
所以我有一個自定義模板標籤,這很簡單。它需要一個視圖名稱,呈現它並返回其內容。問題是,雖然在他們上使用.as_view()
可以讓我獲得內容,但似乎沒有正確設置上下文,因爲django-sekizai
的addtoblock
s沒有正確添加到主模板。另一方面,如果我直接實例化視圖並調用.render_to_response(context).render()
,則上下文將更新,並且sekizai
會將塊數據注入基本模板。但是,這第二種方法將不能正確呈現表單(其中.as_view()
)。有沒有辦法做到這一點不骯髒地調用兩者?Django視圖沒有正確更新上下文
class PopupNode(template.base.Node):
def __init__(self, popup):
self.popup = popup
def render(self, context):
# only needed to update context
view_object = self.popup()
view_object.request = context['request']
view_object.render_to_response(context).render()
# actual content
view_function = self.popup.as_view()
template_response = view_function(context['request'], context=context)
template_response.render()
return template_response.content