code: def _resolve_by_callback(request, url, urlconf=None):
      
      try:
          callback, args, kwargs = _resolve_url(url, request, urlconf=urlconf)
      except urlresolvers.Resolver404:
          return None
  
      bc = getattr(callback, 'breadcrumb', None)
      if bc is None:
          bc = getattr(callback, 'navigation', None)
          if bc is not None:  # pragma: nocover
              import warnings
              warnings.warn('The "navigation" attribute is deprecated, use '
                            '"breadcrumb" instead.')
      if bc is None:
          return None
  
      if hasattr(bc, '__call__'):
          # the breadcrumb is a function with an API identical to that of views.
          try:
              title = bc(request, *args, **kwargs)
          except http.Http404:
              return None
          assert isinstance(title, basestring), (
              'Breadcrumb function must return Unicode, not %s' % title)
      else:
          title = unicode(bc)    # handle i18n proxy objects
  
      return Crumb(url, title)
docs: Finds a view function by urlconf. If the function has attribute
      'navigation', it is used as breadcrumb title. Such title can be either a
      callable or an object with `__unicode__` attribute. If it is callable, it
      must follow the views API (i.e. the only required argument is request
      object). It is also expected to return a `unicode` value.