def author_list(request): """ List all code snippets, or create a new snippet. """ if request.method == 'GET': authors = Author.objects.all() serializer = AuthorSerializer(authors, many=True) return JSONResponse(serializer.data) elif request.method == 'POST': data = JSONParser().parse(request) serializer = AuthorSerializer(data=data) if serializer.is_valid(): serializer.save() return JSONResponse(serializer.data, status=201) return JSONResponse(serializer.errors, status=400)
def test_(self): serializer = AuthorSerializer(data={'name': 'greenfrog'}) self.assertTrue(serializer.is_valid(), serializer.errors) author = serializer.save() self.assertEqual(author.id, 1) self.assertEqual(author.name, 'greenfrog') data = { 'author': author.id, # 'author': str(author.id), 'title': 'Happy', 'code': 'def happy(self): pass', 'linenos': 'True' } serializer = SnippetSerializer(data=data) self.assertTrue(serializer.is_valid(), serializer.errors) snippet = serializer.save() # self.assertEqual(snippet.id, 1) self.assertIsNotNone(snippet.created) self.assertEqual(snippet.author, author) self.assertEqual(snippet.title, 'Happy') self.assertEqual(snippet.code, 'def happy(self): pass') self.assertTrue(snippet.linenos)
def author_detail(request,pk): try: author = Author.objects.get(pk=pk) except Author.DoesNotExists: return HttpResponse(status=404) if request.method == 'GET': serializer = AuthorSerializer(author) return JSONResponse(serializer.data) elif request.method == 'PUT': data = JSONParser().parse(request) serializer = AuthorSerializer(author, data=data) if serializer.is_valid(): serializer.save() return JSONResponse(serializer.data) return JSONResponse(serializer.errors, status=400) elif request.method == 'DELETE': snippet.delete() return HttpResponse(status=204)
def author_list(request): """ List all code authors, or create a new author. """ if request.method == 'GET': authors = Author.objects.all() serializer = AuthorSerializer(authors, many=True) return JsonResponse(serializer.data, safe=False) elif request.method == 'POST': data = JSONParser().parse(request) serializer = AuthorSerializer(data=data) if serializer.is_valid(): serializer.save() return JsonResponse(serializer.data, status=201) return JsonResponse(serializer.errors, status=400)
def author_detail(request, pk): try: author = Author.objects.get(pk=pk) except Author.DoesNotExists: return HttpResponse(status=404) if request.method == 'GET': serializer = AuthorSerializer(author) return JSONResponse(serializer.data) elif request.method == 'PUT': data = JSONParser().parse(request) serializer = AuthorSerializer(author, data=data) if serializer.is_valid(): serializer.save() return JSONResponse(serializer.data) return JSONResponse(serializer.errors, status=400) elif request.method == 'DELETE': snippet.delete() return HttpResponse(status=204)
snippet = Snippet(code='foo = "bar"\n') snippet.save() snippet = Snippet(code='print("hello, world")\n') snippet.save() author = Author(title='print("hello, world")\n') author.save() author = Author(title='print("world")\n') author.save() serializer = SnippetSerializer(snippet) serializer.data serializer = AuthorSerializer(author) serializer.data import io stream = io.BytesIO(content) data = JSONParser().parse(stream) serializer = SnippetSerializer(data=data) serializer.is_valid() # True serializer.validated_data # OrderedDict([('title', ''), ('code', 'print("hello, world")\n'), ('linenos', False), ('language', 'python'), ('style', 'friendly')]) serializer.save() # <Snippet: Snippet object>