【发布时间】:2018-12-05 23:56:09
【问题描述】:
我想将生成的id 分配给AuthUser 模型的username 列。我该怎么做?
我尝试更新UserManager,但没有成功。这就是我所做的。
def _create_user(self, username=None, email=None, password=None,
**extra_fields):
"""
Create and save a user with the given email, and password.
"""
email = self.normalize_email(email)
user = self.model(email=email, **extra_fields)
if not username:
username = user.id # it always returns None.
user.username = self.model.normalize_username(username)
user.set_password(password)
user.save(using=self._db)
return user
我该怎么做?
【问题讨论】:
-
试试Django post_save Signal之类的东西怎么样
-
不。 Django 需要
username作为必填字段。我不能save,抛开post_save。 -
如果我没记错的话,
user.id将是None,直到创建数据库行 -
这意味着
not username将永远是True? -
为什么不在
user.save(using=self._db)后面赋值username,这样就可以得到用户对象的id,然后再保存。
标签: python django django-models django-users