def test_favorite_create(self): """ create favorite """ form_data = {} form = FavoriteForm(data=form_data) form.topic = self.topic form.user = self.user self.assertEqual(form.is_valid(), True)
def test_favorite_create_invalid(self): """ create favorite duplicate """ TopicFavorite.objects.create(user=self.user, topic=self.topic) form_data = {} form = FavoriteForm(data=form_data) form.topic = self.topic form.user = self.user self.assertEqual(form.is_valid(), False)
def favorite_create(request, topic_id): topic = get_object_or_404(Topic, pk=topic_id) form = FavoriteForm(user=request.user, topic=topic, data=request.POST) if form.is_valid(): form.save() else: messages.error(request, utils.render_form_errors(form)) return redirect(request.POST.get('next', topic.get_absolute_url()))
def render_favorite_form(topic, user, next=None): try: favorite = TopicFavorite.objects.get(user=user, topic=topic) except TopicFavorite.DoesNotExist: favorite = None form = FavoriteForm() return { 'form': form, 'topic_id': topic.pk, 'favorite': favorite, 'next': next }