新手到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'
答案 0 :(得分:3)
对我而言,您的settings.py中的个人资料设置似乎错误。它应该如下所示:<app>.<model>
这正是django
抱怨的内容。看看你的设置。