如何使用 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()
方法。