这是一个非常小的问题,但我必须错过一些东西,因为我无法想出一个我很满意的解决方案。如何在使用django-registration和django-socialauth时显示注册后欢迎信息?
我使用两个库来处理注册,基于电子邮件注册的django注册和基于社交的注册的django-socialauth,并希望在用户首次注册时显示欢迎消息。
我目前的做法是有一个上下文处理器,用于检查用户是否在过去2分钟内注册过,如果是,则更新请求对象。这似乎是低效的,因为我每次只检查一次就检查一次。
我尝试过使用信号来实现它,但是我碰到的问题是我需要某种方式来挂接请求,但只有django注册才能传递请求。
我正在考虑的一个选项是使用信号更新数据库中的一条记录,但对于这种简单的事情来说这看起来有点过分。我错过了明显的东西吗?
context_processors.py:
def just_registered(request):
just_registered = False
if request.user.is_authenticated() and request.user.email:
if request.user.date_joined < datetime.today() + timedelta(minutes=2):
if 'just_registered' not in request.session:
just_registered = True
request.session['just_registered'] = just_registered
return { 'just_registered' : just_registered }
不,我明白这一部分。问题是,我不想使用just_registered函数,因为检查是为每个页面加载完成的,因为我应该只做一次。 啊感谢电子邮件的注意事项 - 我还使用类似的代码来处理其他需要电子邮件的地方,如果用户使用Twitter注册,那么电子邮件未设置。 – 2013-02-27 00:35:40
为什么不创建装饰者? – princess 2013-02-27 00:38:01
这将如何工作?用与上下文处理器中大致相同的逻辑包装每个视图? – 2013-02-27 15:47:54