在基於類的視圖中向模板發送上下文


如何使用 get_object 函數在基於類的視圖中將上下文發送到我的模板?
這是我的課:

類 DetailMessages(LoginRequiredMixin, DetailView, ChannelFormMixin):
    模板名稱 = 'DM/chat.html'
    def get_object(self, *args, **kwargs):
        my_username = self.request.user.username
        用戶名 = self.kwargs.get("用戶名")
        頻道,_ = Channel.objects.get_dm_channel(我的用戶名,用戶名)
        如果通道 == 無:
            提出Http404
        context = {"example1" : "我想要這個在模板上", "example2" : "我也想要這個在模板上"}
        返回通道

在基於類的視圖中混合方法通常不是一個好主意。您可以通過兩種方式傳遞上下文:在 get()get_context_data() 中。例子:

# 或

def get_context_data(self, **kwargs):
    上下文 = super().get_context_data(**kwargs)
    context["example1"] = "我想要這個在模板上"
    context["example2"] = "我也想要這個在模板上"
    返回上下文

# 或者

def get(self, request, *args, **kwargs):
    上下文 = {}
    context["example1"] = "我想要這個在模板上"
    context["example2"] = "我也想要這個在模板上"
    返回渲染(...,上下文=上下文)

如果您實際上不需要使用 get()(或 post())方法進行操作,那麼更好的方法是將上下文管理留給 get_context_data() 方法。