def get_pybb_profile_model(): from django.conf import settings if settings.FORUM_PROFILE_RELATED_NAME: return getattr(get_user_model(), settings.FORUM_PROFILE_RELATED_NAME).related.model else: return get_user_model()
def post_deleted(instance, **kwargs): Profile = utils.get_pybb_profile_model() User = compat.get_user_model() try: profile = utils.get_bb_profile(instance.author) except (Profile.DoesNotExist, User.DoesNotExist) as e: # When we cascade delete an user, profile and posts are also deleted pass else: profile.post_count = instance.author.posts.count() profile.save()
def get_bb_profile(user): from django.conf import settings if not user.is_authenticated(): if settings.FORUM_ENABLE_ANONYMOUS_POST: user = get_user_model().objects.get(**{get_username_field(): settings.FORUM_ANONYMOUS_USERNAME}) else: raise ValueError(_('Can\'t get profile for anonymous user')) if settings.FORUM_PROFILE_RELATED_NAME: return getattr(user, settings.FORUM_PROFILE_RELATED_NAME) else: return user
def get_bb_profile(user): from django.conf import settings if not user.is_authenticated(): if settings.FORUM_ENABLE_ANONYMOUS_POST: user = get_user_model().objects.get( **{get_username_field(): settings.FORUM_ANONYMOUS_USERNAME}) else: raise ValueError(_('Can\'t get profile for anonymous user')) if settings.FORUM_PROFILE_RELATED_NAME: return getattr(user, settings.FORUM_PROFILE_RELATED_NAME) else: return user