夹层定制配置文件

时间:2014-02-19 16:50:20

标签: python django mezzanine

我有一个项目需要扩展django的用户。我最初这样做的方式(没有Mezzanine)是将Model子类化为一个自定义的Profile,它与django的User有一对一的Field。另外,为了保证每个用户总是有一个配置文件,我在我的应用程序中创建了一个可以监听user_registered信号的接收器。每当它被触发时我都会在接收器内部做:

user = kwargs.get('user')
profile = Profile(user=user)
profile.save()

现在使用Mezzanine存在一个名为AUTH_PROFILE_MODULE的设置,我将其设置为“myapp.Profile”,而Mezzanine为我创建了配置文件。但是有两个问题:

a)在我的webapp上,每次访问我的个人资料页面时,我都会收到:

myapp/venv/local/lib/python2.7/site-packages/mezzanine/accounts/templatetags/accounts_tags.py:70: DeprecationWarning: The use of AUTH_PROFILE_MODULE to define user profiles has been deprecated.
  profile = user.get_profile()

实际上,AUTH_PROFILE_MODULE曾经存在于django中,但已被弃用。我该怎么办?我是否忽略了警告,因为它是Mezzanine,而不是django,谁在使用AUTH_PROFILE_MODULE?或者Mezzanine现在有不同的处理配置文件的方式吗?

b)在我没有夹层的接收器上,我做了更多的事情。例如,我根据某些环境变量启动了Profile vars。我怎么还能用Mezzanine做那些定制的东西?我的旧接收器不再工作了。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

这个问题有点陈旧,但我认为你可以放心地忽略这个警告。

您应该能够通过连接配置文件模型的预保存信号或保存后信号来完成额外配置。