Ticket #13667: models.diff

File models.diff, 5.3 KB (added by humanfromearth, 5 years ago)

models.py diff SVN format

  • django/contrib/auth/models.py

     
    108108        """
    109109
    110110        now = datetime.datetime.now()
    111        
     111
    112112        # Normalize the address by lowercasing the domain part of the email
    113113        # address.
    114114        try:
     
    351351        """
    352352        if not hasattr(self, '_profile_cache'):
    353353            from django.conf import settings
    354             if not getattr(settings, 'AUTH_PROFILE_MODULE', False):
     354            if not getattr(settings, 'AUTH_PROFILE_MODULE', False) and (
     355                not getattr(settings, 'AUTH_PROFILE_MODULES', False)):
     356                raise SiteProfileNotAvailable('You need to set AUTH_PROFILE_MOD'
     357                                              'ULE or AUTH_PROFILE_MODULES in y'
     358                                              'our project settings')
     359            if getattr(settings, 'AUTH_PROFILE_MODULE', False) is not False and (
     360                getattr(settings, 'AUTH_PROFILE_MODULES', False) is not False):
    355361                raise SiteProfileNotAvailable('You need to set AUTH_PROFILE_MO'
    356                                               'DULE in your project settings')
    357             try:
    358                 app_label, model_name = settings.AUTH_PROFILE_MODULE.split('.')
    359             except ValueError:
    360                 raise SiteProfileNotAvailable('app_label and model_name should'
    361                         ' be separated by a dot in the AUTH_PROFILE_MODULE set'
    362                         'ting')
    363 
    364             try:
    365                 model = models.get_model(app_label, model_name)
    366                 if model is None:
    367                     raise SiteProfileNotAvailable('Unable to load the profile '
    368                         'model, check AUTH_PROFILE_MODULE in your project sett'
    369                         'ings')
    370                 self._profile_cache = model._default_manager.using(self._state.db).get(user__id__exact=self.id)
    371                 self._profile_cache.user = self
    372             except (ImportError, ImproperlyConfigured):
     362                                              'DULE or AUTH_PROFILE_MODULES in '
     363                                              'your project settings not both')
     364            if getattr(settings, 'AUTH_PROFILE_MODULE', False) is not False:
     365                try:
     366                    app_label, model_name = settings.AUTH_PROFILE_MODULE.split('.')
     367                except ValueError:
     368                    raise SiteProfileNotAvailable('app_label and model_name sho'
     369                                                  'uld be separated by a dot in'
     370                                                  ' the AUTH_PROFILE_MODULE set'
     371                                                  'ting')
     372                try:
     373                    model = models.get_model(app_label, model_name)
     374                    if model is None:
     375                        raise SiteProfileNotAvailable('Unable to load the profi'
     376                                                      'le model, check AUTH_PRO'
     377                                                      'FILE_MODULE in your proj'
     378                                                      'ect settings')
     379                    self._profile_cache = model._default_manager.using(self._state.db).get(user__id__exact=self.id)
     380                    self._profile_cache.user = self
     381                except (ImportError, ImproperlyConfigured):
     382                    raise SiteProfileNotAvailable
     383            elif getattr(settings, 'AUTH_PROFILE_MODULES', False) is not False:
     384                for profile_module in settings.AUTH_PROFILE_MODULES:
     385                    try:
     386                        app_label, model_name = profile_module.split('.')
     387                    except ValueError:
     388                        raise SiteProfileNotAvailable('app_label and model_name'
     389                                                      'should be separated by a'
     390                                                      ' dot in the AUTH_PROFILE'
     391                                                      '_MODULE setting')
     392                    try:
     393                        model = models.get_model(app_label, model_name)
     394                        if model is None:
     395                            raise SiteProfileNotAvailable('Unable to load the p'
     396                                                          'rofile model, check '
     397                                                          'AUTH_PROFILE_MODULE '
     398                                                          'in your project sett'
     399                                                          'ings')
     400                        if not hasattr(self, '_profile_cache'):
     401                            self._profile_cache = model._default_manager.using(self._state.db).get(user__id__exact=self.id)
     402                            self._profile_cache.user = self
     403                        else:
     404                            self._profile_cache.__dict__.update(model._default_manager.using(self._state.db).get(user__id__exact=self.id).__dict__)
     405                    except (ImportError, ImproperlyConfigured):
     406                        raise SiteProfileNotAvailable
     407            else:
    373408                raise SiteProfileNotAvailable
    374409        return self._profile_cache
    375410
Back to Top