title: NoReverseMatch with get_absolute_url
body: <p>I have a list of links made up of queryset objects. Clicking on each link should take me to that object's detail view. But I'm getting the following error:</p>
  
  <p><code>NoReverseMatch at /idea_tracker/shoppinglist/
  Reverse for 'views.recipient_detail' not found. 'views.recipient_detail' is not a valid view function or pattern name.</code></p>
  
  <p>My model:</p>
  
  <pre><code>class Recipient(models.Model):
      first_name = models.CharField(max_length=30)
      last_name = models.CharField(max_length=30)
      birthday = models.CharField(max_length=10, blank=True)
      notes = models.TextField(max_length=255, blank=True)
  
      def __str__(self):
          return "{} {}".format(self.first_name, self.last_name)
  
      def get_absolute_url(self):
          return reverse(
              'views.recipient_detail', 
              args=(), 
              kwargs={'recipient_id': str(self.id)}
              )
  
  class Gift(models.Model):
      name = models.CharField(max_length=30, blank=True)
      model_number = models.CharField(max_length=30, blank=True)
      price = models.DecimalField(default=0.00, decimal_places=2, 
  max_digits=6)
      recipients = models.ManyToManyField(Recipient, blank=True)
      purchased = models.BooleanField(default=False)
  
      def __str__(self):
          return "{}".format(self.name)
  </code></pre>
  
  <p>My views:</p>
  
  <pre><code>def shopping_list(request):
      recipients = 
          models.Recipient.objects.prefetch_related('gift_set').\
          all().order_by('last_name')
      gift_list = models.Gift.objects.all()
      total = []
  
      for y in gift_list:
          total.append(y.price)
          total_price = sum(total)
      return render(request, 'idea_tracker/shoppinglist.html', {
          'recipients': recipients, 
          'total_price': total_price
          })
  
  def recipient_detail(request, pk):
      recipient = get_object_or_404(models.Recipient, pk=pk)
      gift = recipient.gift_set
      return render(request, 'idea_tracker/recipient_detail.html', {
          'recipient': recipient
          })
  </code></pre>
  
  <p>My url:</p>
  
  <pre><code>urlpatterns = [
      url(r'^shoppinglist/', views.shopping_list, name='shopping_list'),
      url(r'^recipient_detail/(?P&lt;recipient_id&gt;)/$', 
           views.recipient_detail, name='recipient_detail'),
  ]
  </code></pre>
  
  <p>My template:</p>
  
  <pre><code>&lt;h3&gt; Click on a Recipient to edit or delete:&lt;/h3&gt;
  
      {% for name in recipients %}
  
      &lt;ul&gt;
          &lt;li&gt;&lt;a href="{{ name.get_absolute_url }}"&gt;{{ name.first_name }} 
          {{ name.last_name }} /
  
          {% for gift in name.gift_set.all %}
  
           &lt;span style='color:darkblue'&gt;{{ gift }}&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
  
          {% endfor %}
  
      &lt;/ul&gt;
  
     {% endfor %}
  </code></pre>