Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.shortcuts import render
- from django.contrib.auth.mixins import (LoginRequiredMixin,
- PermissionRequiredMixin)
- from django.contrib.admin.views.decorators import staff_member_required
- from django.urls import reverse, reverse_lazy
- from django.views import generic
- from courses.models import Course
- from courses.forms import CourseForm, CourseUnitFormset
- class CreateCourse(LoginRequiredMixin,generic.CreateView):
- form_class = CourseForm
- template_name = 'courses/course_form.html'
- def get_success_url(self):
- return reverse('courses:list')
- def get_context_data(self, **kwargs):
- context = super(CreateCourse, self).get_context_data(**kwargs)
- if self.request.POST:
- context['courseunit_formset'] = CourseUnitFormset(self.request.POST)
- else:
- context['courseunit_formset'] = CourseUnitFormset()
- return context
- def form_valid(self, form):
- form.instance.user = self.request.user
- context = self.get_context_data(form=form)
- formset = context['courseunit_formset']
- if formset.is_valid():
- response = super().form_valid(form)
- formset.instance = self.object
- formset.save()
- return response
- else:
- return super().form_invalid(form)
- class SingleCourse(generic.DetailView):
- model = Course
- class ListCourses(generic.ListView):
- model = Course
- paginate_by = 10
- class DeleteCourse(LoginRequiredMixin,generic.DeleteView):
- model = Course
- success_url = reverse_lazy('courses:list')
- class UpdateCourse(LoginRequiredMixin,generic.UpdateView):
- form_class = CourseForm
- template_name = 'courses/course_form.html'
- model = Course
- def get_success_url(self):
- return reverse('courses:show', kwargs={'pk': self.kwargs['pk']})
- def get_context_data(self, **kwargs):
- context = super(UpdateCourse, self).get_context_data(**kwargs)
- if self.request.POST:
- context['courseunit_formset'] = CourseUnitFormset(self.request.POST, instance=self.object)
- context['courseunit_formset'].full_clean()
- else:
- context['courseunit_formset'] = CourseUnitFormset(instance=self.object)
- return context
- def form_valid(self, form):
- context = self.get_context_data(form=form)
- formset = context['courseunit_formset']
- if formset.is_valid():
- response = super().form_valid(form)
- formset.instance = self.object
- formset.save()
- return response
- else:
- return super().form_invalid(form)
Advertisement
Add Comment
Please, Sign In to add comment