AttributeError: 'RegexURLResolver' object

2019-02-21 15:39发布

问题:

I keep getting the below errors in my sentry exceptions

AttributeError: 'RegexURLResolver' object has no attribute '_urlconf_module'

And the trace only points to code withing the django code base without pointing to any place in my application. My logs are clean too. What could be a possible reason for this?

        raise Resolver404({'path' : path})
     @property
     def urlconf_module(self):
         try:
             return self._urlconf_module
         except AttributeError:
             self._urlconf_module = import_module(self.urlconf_name)
             return self._urlconf_module
     @property
'self'  
<RegexURLResolver urls (None:None) ^/>

回答1:

Otherwise on the Internet I found this:

The issue is caused by an import ordering problem, in your example code you call urlresolvers.reverse which will load example/urls.py, which will trigger an admin.autodiscover() call, which will load social/apps/django_app/default/admin.py, which will try to load your custom user model which will fail to load your user model.

I hit the problem when I called a function directly from views.py, and this function resulted in use of resolve, which probably lead to an import problem since calling a function directly from views.py is bad style. However, the comment above helped med debug the issue.