I spent the better part of the day going through this example and found what I think is an oversight that might be worth updating. There is no mention that when you switch to generic class-based views that the url patterns needs to update from url(r'^snippets/(?P<id>[0-9]+)/$', views.SnippetDetail.as_view()), TO url(r'^snippets/(?P<pk>[0-9]+)/$', views.SnippetDetail.as_view()).I hope this can help someone.