chapter 4 generic views https://docs.djangoproject.com/en/1.7/intro/tutorial04/