首页 > 解决方案 > 如何将数据库查询集对象从基于类的视图(类 SignUp(generic.CreateView))传递到 Django 中的模板

问题描述

视图.py

from django.shortcuts import render
from django.urls import reverse_lazy
from django.views import generic
from .forms import CustomUserCreationForm

class SignUp(generic.CreateView):
    form_class = CustomUserCreationForm
    success_url = reverse_lazy('login')
    template_name = 'signup.html'

网址.py

urlpatterns = [
    url(r'signup/', views.SignUp.as_view(), name='signup'),
    url(r'^$', TemplateView.as_view(template_name='home.html'), name='home'),
]

我使用 django 自定义用户创建方法来注册用户,它工作正常。但是如何在我的类 SignUp 中将对象传递给模板。我是基于类的视图的新手。请帮我。

标签: pythondjangodjango-class-based-views

解决方案


要传递上下文,您可以编写

context_object_name = 'username'

现在想想你正在制作一个待办事项应用程序并希望按照他们的要求打印任务然后你可以在基于类的视图中执行以下操作,

def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['tasks'] = context['tasks'].filter(user=self.request.user)
        context['count'] = context['tasks'].count()

这样,您可以在基于类的视图中编写数据库查询集。

如果您想要一个完美的指南或源代码来学习 django 身份验证,即登录和注销用户功能,我建议您阅读本教程,这是一个待办事项列表应用程序,可以解决您的疑问

在基于类的视图中使用 django 身份验证和查询集列出待办事项

上面的源代码在这里:

源代码


推荐阅读