title: what is the differences between reverse and reverse_lazey methods in Django?
body: <p>I can't use reverse() method in a class to generate url</p>
  <p>for example, reverse() doesn't work in generic views or Feed classes (reverse_lazy() should be used instead)</p>
  <p>but I can use reverse() in functions. what is the differences ?</p>
  <p>take a look at following:</p>
  <pre><code>class LatestPostFeed(Feed):
      title = 'My Django blog'
      # link = reverse_lazy('blog:index')
      description = 'New posts of my blog'
  
      def items(self):
          return models.Post.published.all()[:5]
  
      def item_title(self, item):
          return item.title
  
      def item_description(self, item):
          return truncatewords(item.body, 30)
  
      def link(self):
          return reverse('blog:index')
  </code></pre>
  <p>the link attribute above only works with reverse_lazy() method.
  but the link function works with both reverse_lazy() and reverse() methods</p>