def form_valid(self, form): self.object = form.save(commit=False) # Ищем id текущего аутентифицированного пользователя user_id = User.objects.all().values().filter( username=self.request.user)[0]['id'] # Добавляем текущего пользователя в поле user формы self.object.user = User.objects.get(id=user_id) # Проверка, есть ли уже такая подписка subscriber_list = Subscriber.objects.filter(user=self.object.user) save_flag = True for item in list(subscriber_list): if item.category == self.object.category: save_flag = False break if save_flag: self.object.save() return super().form_valid(form) else: self.success_url = '/news/' return HttpResponseRedirect(FormMixin.get_success_url(self))
def get_success_url(self): from django.views.generic.edit import FormMixin return FormMixin.get_success_url(self)