Parcourir la source

Redirect to library page on movie creation

Benoît Hubert il y a 7 ans
Parent
commit
ee837245e3
5 fichiers modifiés avec 23 ajouts et 10 suppressions
  1. 1 0
      movielib/urls.py
  2. 0 6
      movies/templates/home.html
  3. 11 0
      movies/templates/library.html
  4. 6 2
      movies/tests.py
  5. 5 2
      movies/views.py

+ 1 - 0
movielib/urls.py

@@ -21,4 +21,5 @@ from movies import views
 urlpatterns = [
     path('admin/', admin.site.urls),
     url(r'^$', views.home_page, name='home'),
+    url(r'^libraries/benoit-hubert/$', views.view_list, name='view_list'),
 ]

+ 0 - 6
movies/templates/home.html

@@ -6,11 +6,5 @@
         <input name="movie-title" id="input-new-movie" placeholder="Enter a movie title" />
         {% csrf_token %}
       </form>
-
-      <table id="movie-table">
-        {% for movie in movies %}
-          <tr><td>{{ forloop.counter }}: {{ movie.title }}</td></tr>
-        {% endfor %}
-      </table>
   </body>
 </html>

+ 11 - 0
movies/templates/library.html

@@ -0,0 +1,11 @@
+<html>
+  <title>MovieLib</title>
+    <body>
+      <h1>Your Movie list</h1>
+      <table id="movie-table">
+        {% for movie in movies %}
+          <tr><td>{{ forloop.counter }}: {{ movie.title }}</td></tr>
+        {% endfor %}
+      </table>
+  </body>
+</html>

+ 6 - 2
movies/tests.py

@@ -33,13 +33,17 @@ class HomePageTest(TestCase):
     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'], '/')
+        self.assertEqual(response['location'], '/libraries/benoit-hubert/')
+
+    def test_uses_list_template(self):
+        response = self.client.get('/libraries/benoit-hubert/')
+        self.assertTemplateUsed(response, 'library.html')
 
     def test_displays_all_list_items(self):
         Movie.objects.create(title='itemey 1')
         Movie.objects.create(title='itemey 2')
 
-        response = self.client.get('/')
+        response = self.client.get('/libraries/benoit-hubert/')
 
         self.assertIn('itemey 1', response.content.decode())
         self.assertIn('itemey 2', response.content.decode())

+ 5 - 2
movies/views.py

@@ -5,7 +5,10 @@ from movies.models import Movie
 def home_page(request):
     if request.method == 'POST':
         Movie.objects.create(title=request.POST['movie-title'])
-        return redirect('/')
+        return redirect('/libraries/benoit-hubert/')
 
+    return render(request, 'home.html')
+
+def view_list(request):
     movies = Movie.objects.all()
-    return render(request, 'home.html', {'movies': movies})
+    return render(request, 'library.html', {'movies': movies})