我有一个模型,它是 Django 1.8 中用户模型的扩展。为此,我还连接到 MySQL 数据库。
class LibraryUser(models.Model):
user_id = models.OneToOneField(User)
is_catalogue_subscriber = models.BooleanField(default=True)
is_research_subscriber = models.BooleanField(default=True)
library_membership_number = models.CharField(max_length=64)
之所以扩展User
模型,当然是为了使用认证框架。
现在,我想使用 library_membership_number
作为登录用户名创建一个新的 LibraryUser。我应该怎么做?我是否先创建 User
然后引用 LibraryUser
?
即给定 some_
变量,要么通过 POST
接收,要么通过用户迁移到新表
u = User.objects.create_user(email=some_email, password=some_password)
lu = LibraryUser(library_membership_number, user_id = u.id)
lu.save()
或者是否有正确的方法来做到这一点?尝试在网上查找但找不到专门解决此问题的内容。
最佳答案
您应该将值分配给指定字段,如下所示:
lu = LibraryUser(library_membership_number= '...', user_id = user)
lu.save()
library_membership_number
您不能只将变量分配给
library_membership_number
。model
是一个包含字段的对象。您应该指定字段并分配它:library_membership_number= '...'
,否则model
无法解析您将存储哪个字段。user_id
预先定义了
foreignkey
。它可以接受另一个model
对象来存储:user_id = user
。不要调用user
的属性存储在LibraryUser
中。
关于python - 在 Django 中创建自定义用户模型的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049619/