Django装饰器生成SiteProfileNotAvailable错误

时间:2011-02-21 21:54:13

标签: python django decorator

新手到Python(2.6)和Django(1.2),在这里学习绳索。考虑我想要在方法上使用的以下装饰器,以及@login_required,如果用户尝试执行需要“提供最少信息”配置文件的内容,则会将用户重定向到配置文件完成URL。

使用模式旨在:

@login_required
@min_profile_required
def my_view(request):
    # do whatever.

我目前对min_profile_required装饰器的定义如下:

def min_profile_required(decorated_view):
    @wraps(decorated_view)
    def redirector(request, *args, **kwargs):
        if ProfileHelper.is_min_profile_complete(request.user):
            return decorated_view(request, *args, **kwargs) 
        return HttpResponseRedirect(PROFILE_COMPLETION_URL)
    return redirector

对我而言,这感觉就像是Python 101,但Django完全不喜欢它。生成以下错误

SiteProfileNotAvailable at ...
app_label and model_name should be separated by a dot in the AUTH_PROFILE_MODULE setting

装饰器是“帐户”应用程序的一部分,因此AUTH_PROFILE_MODULE设置不是装饰器定义所属(或用于)的应用程序的一部分。

我觉得这应该很容易,所以必须有一些我想念的微妙的东西,可能与“链接”装饰者有关?

非常感谢任何帮助。

更新:这是我的个人资料设置。

AUTH_PROFILE_MODULE = 'cta.account.models.user_profile.UserProfile'

下面提供的答案:我的个人资料模型配置不正确,应该是

AUTH_PROFILE_MODULE = 'account.UserProfile'

1 个答案:

答案 0 :(得分:3)

对我而言,您的settings.py中的个人资料设置似乎错误。它应该如下所示:<app>.<model>这正是django抱怨的内容。看看你的设置。