【发布时间】:2011-02-21 21:54:13
【问题描述】:
这里是 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'
【问题讨论】: