如何在基于类的视图中发送上下文

时间:2019-06-14 13:33:31

标签: python html django

我正试图将上下文发送到我在标题中说过的大视野的视图。

这是我的班级观点:

class RegisterUser(CreateView):
    templates = Templates.objects.get(isSelected=True)
    model= settings.AUTH_USER_MODEL
    form_class = RegisterForm
    template_name = "register/register.html"
    success_url = reverse_lazy('login')

我想将“模板”发送到上下文,然后发送到html。但是我不知道该怎么做。

有人可以帮助我吗?谢谢!

2 个答案:

答案 0 :(得分:1)

与任何基于类的视图一样,如果要添加其他上下文数据,请使用get_context_data方法。

class RegisterUser(CreateView):
    model = settings.AUTH_USER_MODEL
    form_class = RegisterForm
    template_name = "register/register.html"
    success_url = reverse_lazy('login')

    def get_context_data(self, **kwargs):
        kwargs['templates'] = Templates.objects.get(isSelected=True)
        return super().get_context_data(**kwargs)

答案 1 :(得分:0)

仅供参考。另一种方法是使用view对象。
在这种情况下,您无需覆盖get_context_data()

class RegisterUser(CreateView):
    model = settings.AUTH_USER_MODEL
    form_class = RegisterForm
    template_name = "register/register.html"
    success_url = reverse_lazy('login')

    def templates(self):
        return Templates.objects.get(isSelected=True)

在模板内部使用:

{{ view.templates }}