我刚迁移到Django 1.5。但是我在使用AUTH_USER_MODEL
时遇到了一些困难。看下面的例子,我只是不能更新数据库中的值。我做错了什么?
测试1
user = get_user_model().objects.get(id=3)
user.email
u'zzzzz@gmail.com'
user.is_active
False
user.is_active = True
user.save()
user = get_user_model().objects.get(id=3)
user.is_active
False
测试2
user.email
u'zzzzz@gmail.com'
user.email='blah@blah.com'
user.save()
user = get_user_model().objects.get(id=3)
user.email
u'zzzzz@gmail.com'
Teste 3 MyUser模型也是如此
from myuser.models import MyUser
a = MyUser.objects.get(id=3)
a.is_active
False
a.is_active = True
a.save()
a = MyUser.objects.get(id=3)
a.is_active
False
答案 0 :(得分:1)
@Catherine和@Sid是正确的!多谢你们!
在我的保存方法中,我忘了缩进super()。
是:
def save(self, *args, **kwargs):
if not self.hash:
now = time.localtime(time.time())
time_formatted=time.strftime("%Y-%m-%d %H:%M:%S", now)
hash="%s%s" % (time_formatted, self.email)
self.hash=hashlib.sha1(hash).hexdigest()
super(MyUser, self).save(*args, **kwargs)
正确的时候是:
def save(self, *args, **kwargs):
if not self.hash:
now = time.localtime(time.time())
time_formatted=time.strftime("%Y-%m-%d %H:%M:%S", now)
hash="%s%s" % (time_formatted, self.email)
self.hash=hashlib.sha1(hash).hexdigest()
super(MyUser, self).save(*args, **kwargs)