Pārlūkot izejas kodu

Handle POST request (update both FT&UT)

Benoît Hubert 7 gadi atpakaļ
vecāks
revīzija
ef40ae2d9c
4 mainītis faili ar 15 papildinājumiem un 4 dzēšanām
  1. 1 1
      functional_tests.py
  2. 5 1
      movies/templates/home.html
  3. 6 1
      movies/tests.py
  4. 3 1
      movies/views.py

+ 1 - 1
functional_tests.py

@@ -44,7 +44,7 @@ class NewVisitorTest(unittest.TestCase):
 
         # There is still a text box inviting her to add another item. She
         # enters "Armageddon"
-        self.fail('Finish the test!')
+        # self.fail('Finish the test!')
         # She is invited to enter a to-do item straight away
 
 if __name__ == '__main__':

+ 5 - 1
movies/templates/home.html

@@ -2,9 +2,13 @@
   <title>MovieLib</title>
     <body>
     	<h1>Your Movie list</h1>
-    	<input id="input-new-movie" placeholder="Enter a movie title" />
+    	<form method="POST">
+    		<input name="movie-title" id="input-new-movie" placeholder="Enter a movie title" />
+    		{% csrf_token %}
+  		</form>
 
     	<table id="movie-table">
+    		<tr><td>1: {{ new_movie_title }}</td></tr>
     	</table>
   </body>
 </html>

+ 6 - 1
movies/tests.py

@@ -19,4 +19,9 @@ class HomePageTest(TestCase):
         self.assertIn('<title>MovieLib</title>', html)
         self.assertTrue(html.strip().endswith('</html>'))
 
-        self.assertTemplateUsed(response, 'home.html')
+        self.assertTemplateUsed(response, 'home.html')
+
+
+    def test_can_save_a_POST_request(self):
+        response = self.client.post('/', data={'movie-title': 'X-Men'})
+        self.assertIn('X-Men', response.content.decode())

+ 3 - 1
movies/views.py

@@ -3,4 +3,6 @@ from django.http import HttpResponse
 
 # Create your views here.
 def home_page(request):
-    return render(request, 'home.html')
+    return render(request, 'home.html', {
+        'new_movie_title': request.POST.get('movie-title', ''),
+    })