Как передать объекты наборов запросов из классов на основе классов (класс SignUp (generic.CreateView)) в шаблоны в Django - PullRequest
0 голосов
/ 20 января 2019

views.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'

urls.py

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

Я использовал метод создания пользовательских django для регистрации пользователей, он работает нормально. Но как передать объекты в шаблоны в моем классе SignUp. Я новичок в представлении на основе классов. Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 20 января 2019

Вам необходимо переопределить 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 %}
...