在我的應用程序中,我有一堆DetailViews和ListViews。我需要爲每個頁面添加一個包含「上次訪問的頁面」信息的面板。我知道我可以創建兩個自己的類,它們分別繼承自DetailView和ListView,並重寫get_context_data方法,但會公佈代碼。目前我解決了這個問題,只需在每個視圖中添加一行代碼如何使用Django mixin?
context['panel_info'] = get_panel_info()
但我不喜歡這個解決方案。 我的想法是創建一個mixin定製get_context_data方法,但據我所知,如果我繼承了這樣的
class MyView(DetailView, MyMixin):
def get_context_data(self, **kwargs):
context = super(MyView, self).get_context_data(**kwargs)
return context
密新的方法不會在所有調用。 那麼最明智的解決方案是什麼?
聽起來像你需要[模板上下文處理器](https://docs.djangoproject.com/en/1.6/ref/templates/api/#writing-your-own-context-processors)。 –