diff --git a/django/contrib/comments/__init__.py b/django/contrib/comments/__init__.py index 2455d40e924..55b8bac94a0 100644 --- a/django/contrib/comments/__init__.py +++ b/django/contrib/comments/__init__.py @@ -10,14 +10,14 @@ def get_comment_app(): Get the comment app (i.e. "django.contrib.comments") as defined in the settings """ # Make sure the app's in INSTALLED_APPS - comments_app = getattr(settings, 'COMMENTS_APP', 'django.contrib.comments') + comments_app = get_comment_app_name() if comments_app not in settings.INSTALLED_APPS: raise ImproperlyConfigured("The COMMENTS_APP (%r) "\ "must be in INSTALLED_APPS" % settings.COMMENTS_APP) # Try to import the package try: - package = __import__(settings.COMMENTS_APP, '', '', ['']) + package = __import__(comments_app, '', '', ['']) except ImportError: raise ImproperlyConfigured("The COMMENTS_APP setting refers to "\ "a non-existing package.") @@ -31,6 +31,13 @@ def get_comment_app(): return package +def get_comment_app_name(): + """ + Returns the name of the comment app (either the setting value, if it + exists, or the default). + """ + return getattr(settings, 'COMMENTS_APP', 'django.contrib.comments') + def get_model(): from django.contrib.comments.models import Comment return Comment @@ -46,7 +53,7 @@ def get_flag_url(comment): """ Get the URL for the "flag this comment" view. """ - if settings.COMMENTS_APP != __name__ and hasattr(get_comment_app(), "get_flag_url"): + if get_comment_app_name() != __name__ and hasattr(get_comment_app(), "get_flag_url"): return get_comment_app().get_flag_url(comment) else: return urlresolvers.reverse("django.contrib.comments.views.moderation.flag", args=(comment.id,)) @@ -55,7 +62,7 @@ def get_delete_url(comment): """ Get the URL for the "delete this comment" view. """ - if settings.COMMENTS_APP != __name__ and hasattr(get_comment_app(), "get_delete_url"): + if get_comment_app_name() != __name__ and hasattr(get_comment_app(), "get_delete_url"): return get_comment_app().get_flag_url(get_delete_url) else: return urlresolvers.reverse("django.contrib.comments.views.moderation.delete", args=(comment.id,)) @@ -64,7 +71,7 @@ def get_approve_url(comment): """ Get the URL for the "approve this comment from moderation" view. """ - if settings.COMMENTS_APP != __name__ and hasattr(get_comment_app(), "get_approve_url"): + if get_comment_app_name() != __name__ and hasattr(get_comment_app(), "get_approve_url"): return get_comment_app().get_approve_url(comment) else: return urlresolvers.reverse("django.contrib.comments.views.moderation.approve", args=(comment.id,)) diff --git a/django/contrib/comments/templatetags/comments.py b/django/contrib/comments/templatetags/comments.py index 78f2819678c..c2a99c843b1 100644 --- a/django/contrib/comments/templatetags/comments.py +++ b/django/contrib/comments/templatetags/comments.py @@ -81,7 +81,7 @@ class BaseCommentNode(template.Node): site__pk = settings.SITE_ID, is_public = True, ) - if settings.COMMENTS_HIDE_REMOVED: + if getattr(settings, 'COMMENTS_HIDE_REMOVED', True): qs = qs.filter(is_removed=False) return qs