def _reverse(self, viewname, args, kwargs, current_app=None, fail=True):
from django.core.urlresolvers import reverse, NoReverseMatch
# Try to look up the URL twice: once given the view name,
# and again relative to what we guess is the "main" app.
url = ''
urlconf=kwargs.pop('urlconf', None)
try:
url = reverse(viewname, urlconf=urlconf, args=args, kwargs=kwargs,
current_app=current_app)
except NoReverseMatch as ex:
projectname = settings.SETTINGS_MODULE.split('.')[0]
try:
url = reverse(projectname + '.' + viewname, urlconf=urlconf,
args=args, kwargs=kwargs)
except NoReverseMatch:
if fail:
raise ex
else:
return ''
return url
评论列表
文章目录