Написал общий класс для создания:
class Add(CreateView): model = Many form_class = forms.AddForm category_list = {} earn = False cost = False title = '' def get_form_kwargs(self): kwargs = super(Add, self).get_form_kwargs() kwargs['queryset'] = self.category_list return kwargs def form_valid(self, form): instance = form.save() instance.users.add(self.request.user.id) return super(Add, self).form_valid(form) def get_context_data(self, **kwargs): context = super(Add, self).get_context_data(**kwargs) context['user_username'] = self.request.user.username context['e'] = self.earn context['c'] = self.cost context['title'] = self.title return context
наследую от него:
class AddErn(Add): template_name = "add.html" success_url = "/earnings/" category_list = Category.objects.filter(operation_type=1) earn = True title = u'Ввод доходов' class AddCost(Add): template_name = 'add.html' success_url = "/costs/" category_list = Category.objects.filter(operation_type=2) cost = True title = u'Ввод расходов' def form_valid(self, form): data = form.save(commit=False) if data.sum > 0: data.sum *= -1 instance = form.save(commit=True) instance.users.add(self.request.user.id) return super(AddCost, self).form_valid(form)