from django.shortcuts import render from django.contrib.auth.mixins import PermissionRequiredMixin from django.views.generic import ListView, DetailView, CreateView from .models import Project, Portfolio from .forms import ProjectForm, PortfolioForm class ProjectListView(ListView): model = Project def get_context_data(self, **kwargs): context = super(ProjectListView, self).get_context_data(**kwargs) return context class ProjectDetailView(DetailView): model = Project class ProjectCreateView(PermissionRequiredMixin, CreateView): model = Project permission_required = ('projects.add_project',) raise_exception = True form_class = ProjectForm success_url = '/projects/' # TODO: Use `reverse_lazy('projects-list')` from `django.core.urlresolvers` def form_valid(self, form): project = form.instance project.user = self.request.user project.save() return super().form_valid(form) class PortfolioCreateView(PermissionRequiredMixin, CreateView): model = Portfolio form_class = PortfolioForm permission_required = ('projects.add_portfolio',) success_url = '/projects/' # import code; code.interact(local=dict(globals(), **locals()))