0

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
4

1 に答える 1

1

@Catherine と @Sid は正しかったです! みんなありがとう!

save メソッドで、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)
于 2013-03-05T11:27:03.163 に答える