我有一个模型,它是Django 1.8中User模型的扩展。我也为此连接到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
变量或用户迁移到新表的<{p}>
u = User.objects.create_user(email=some_email, password=some_password)
lu = LibraryUser(library_membership_number, user_id = u.id)
lu.save()
或者有正确的方法吗?尝试在线查找但无法找到特别解决此问题的内容。
答案 0 :(得分:2)
您应该为指定字段指定值,如下所示:
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
存储。