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

问题描述 投票:0回答:1

views.朋友

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'

URLs.朋友

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

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

python django django-class-based-views
1个回答
0
投票

你需要在get_context_data类中覆盖SignUp方法,如下所示:

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

    def get_context_data(self, **kwargs):
       context = super(SignUp, self).get_context_data(**kwargs)
       context['your_qset'] = YourModel.objects.all()
       return context

并在模板中使用它:

{% for obj in your_qset %}
   {{ obj }}
{% endfor %}
© www.soinside.com 2019 - 2024. All rights reserved.