Explorar el Código

Redirect after POST (and test of course)

Benoît Hubert hace 7 años
padre
commit
e25c39be51
Se han modificado 2 ficheros con 9 adiciones y 9 borrados
  1. 4 2
      movies/tests.py
  2. 5 7
      movies/views.py

+ 4 - 2
movies/tests.py

@@ -30,8 +30,10 @@ class HomePageTest(TestCase):
         new_movie = Movie.objects.first()
         self.assertEqual(new_movie.title, 'X-Men')
 
-        self.assertIn('X-Men', response.content.decode())
-        self.assertTemplateUsed(response, 'home.html')
+    def test_redirects_after_POST(self):
+        response = self.client.post('/', data={'movie-title': 'X-Men'})
+        self.assertEqual(response.status_code, 302)
+        self.assertEqual(response['location'], '/')
 
 class MovieModelTest(TestCase):
 

+ 5 - 7
movies/views.py

@@ -1,12 +1,10 @@
-from django.shortcuts import render
+from django.shortcuts import redirect, render
 from movies.models import Movie
 
 # Create your views here.
 def home_page(request):
-    movie = Movie()
-    movie.title = request.POST.get('movie-title', '')
-    movie.save()
+    if request.method == 'POST':
+        Movie.objects.create(title=request.POST['movie-title'])
+        return redirect('/')
 
-    return render(request, 'home.html', {
-        'new_movie_title': movie.title
-    })
+    return render(request, 'home.html')