使用Django保存mysql数据

时间:2012-11-26 22:58:56

标签: mysql django

我正在使用带有MYSQL后端的Django,我注意到在我更新数据库中的数据和新数据可用之间存在延迟。以下是我的代码中发生的事情:

def change_user_email_api(request):
logger.debug("API: resend verification email")
new_email = request.GET.get('email', '')
username = request.user.username
the_user = User.objects.get(username=username)
the_user.email = new_email
the_user.save()
send_verification_email(request.user)
return generate_success(callback)   

send_verification_email向用户发送电子邮件以验证其电子邮件帐户。我认为错误是由于我将request.user而不是the_user传递给send_verification_email。

有什么方法可以确保我始终拥有数据库中的最新数据,如果是这样,我应该这样做吗?或者我应该接受数据需要一些时间来更新和设计?

谢谢!

1 个答案:

答案 0 :(得分:2)

request.user不会从数据库中提取User对象。它是在请求范围内设置对象的中间件。因此,当您使用request.user为您提供更新的用户实例时,您不能指望。如果您要发送电子邮件,则必须使用“the_user”对象

def change_user_email_api(request):
   logger.debug("API: resend verification email")
   new_email = request.GET.get('email', '')
   the_user = request.user
   the_user.email = new_email
   the_user.save()
   send_verification_email(the_user)
   return generate_success(callback)