title: NoReverseMatch for the new object
body: <p>Use Django 1.10.4. I have a model Stream, for which I created CreateView. When objects are created through the admin panel everything works fine, but when I use the form CreateView, an object is created (either in admin or in the database is no different from the other), but attempts to provide a link to it through DetailView result in an error:</p>
  
  <pre><code>NoReverseMatch at /  
  Reverse for 'detail_stream' with arguments '()' and keyword arguments '{'pk': 17}' not found. 
  2 pattern(s) tried: ['(?P&lt;pk&gt;[0-9])/$', 'streams/(?P&lt;pk&gt;[0-9])/$']
  </code></pre>
  
  <p>This error occurs when displaying the ListView, and then only for an object created through CreateView.<br>
  The place where the error occurs:</p>
  
  <pre><code>{% for item in stream_list %}
      &lt;a href="/streams{% url "detail_stream" pk=item.id %}"&gt;
      ...
      &lt;/a&gt;
  {% endfor %}
  </code></pre>
  
  <p>When you try to go directly to DetailView (<a href="http://127.0.0.1:8000/streams/17" rel="nofollow noreferrer">http://127.0.0.1:8000/streams/17</a>) 404 error.<br>
  urls.py:</p>
  
  <pre><code>from django.conf.urls import url    
  from .views import StreamDetail, StreamUpdate
  
  urlpatterns = [
      url(r'^$', StreamList.as_view(), name='streams'),
      url(r'^(?P&lt;pk&gt;[0-9])/$', StreamDetail.as_view(), name='detail_stream'),
      url(r'^(?P&lt;pk&gt;[0-9])/update/$', StreamUpdate.as_view()),
  ]
  </code></pre>
  
  <p>Also, the url for the streams added to the main site urlpatterns.</p>
  
  <p>View:</p>
  
  <pre><code>class StreamCreate(LoginRequiredMixin, CreateView):
      login_url = '/login/'
  
      def form_valid(self, form):
          regex = re.compile('[^a-zA-Z]')
          newtags = []
          for tag in form.cleaned_data['tags']:
              tag = regex.sub('',tag)
              newtags.append(tag)
          form.cleaned_data['tags'] = newtags
          return super(StreamCreate,self).form_valid(form)
  
      def form_invalid(self, form):
          print(form.errors)
          return super(StreamCreate,self).form_invalid(form)
  
      def get_success_url(self):
          return reverse('streams')
  </code></pre>
  
  <p>I suspect that something I did not realize at CreateView, but I can not understand that and need your help.  </p>