How to use context with class in CreateView in django?

前端 未结 3 1862
天涯浪人
天涯浪人 2021-01-03 10:04

How to use context with class in CreateView in django?

Before i have:

#views.py
from django.views.generic import CreateView
from cars.models import *         


        
3条回答
  •  盖世英雄少女心
    2021-01-03 10:17

    You should define get_context_data() method in your class view. Update your code as

    from django.shortcuts import render
    
    class CreateCar(CreateView):
        info_sended = False
        template_name = 'create_car.html'
        model = Car
        success_url = 'create_car' #urls name
    
        def form_valid(self, form):
            self.info_sended = True
            # Instead of return this HttpResponseRedirect, return an 
            #  new rendered page
            super(CreateCar, self).form_valid(form)
            return render(self.request, self.template_name,
                          self.get_context_data(form=form))
    
    
        def get_context_data(self, **kwargs):
            ctx = super(CreateCar, self).get_context_data(**kwargs)
            ctx['info_sended'] = self.info_sended
            return ctx
    

提交回复
热议问题