def save(self, commit=True): Client = client_model() attr = Client.__name__.lower() try: field = self.instance._meta.get_field(attr) except FieldDoesNotExist: field = None if (field and field.rel and field.rel.to and issubclass(field.rel.to, Client)): setattr(self.instance, attr, getattr(self.request.access, attr)) return super(ModelForm, self).save(commit=commit)
def get_user(self, user_id): Access = access_model() Client = client_model() try: access = Access.objects.select_related( "user", Client.__name__.lower(), ).get(user=user_id) # Ensure reverse accesses do not needlessly query the DB again. # Maybe Django already does that for us already... whatever. setattr(access.user, User.access.cache_name, access) return access.user except Access.DoesNotExist: pass try: # Fall back to raw user access return User.objects.get(id=user_id) except User.DoesNotExist: pass return None
def get_user(self, user_id): Access = access_model() Client = client_model() try: access = Access.objects.select_related( 'user', Client.__name__.lower(), ).get(user=user_id) # Ensure reverse accesses do not needlessly query the DB again. # Maybe Django already does that for us already... whatever. setattr(access.user, User.access.cache_name, access) return access.user except Access.DoesNotExist: pass try: # Fall back to raw user access return User.objects.get(id=user_id) except User.DoesNotExist: pass return None