在Django中创建自定义用户模型的新实例

时间:2015-10-10 02:28:02

标签: python mysql django

我有一个模型,它是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()

或者有正确的方法吗?尝试在线查找但无法找到特别解决此问题的内容。

1 个答案:

答案 0 :(得分:2)

您应该为指定字段指定值,如下所示:

lu = LibraryUser(library_membership_number= '...', user_id = user)
lu.save()
  • library_membership_number

    您无法将变量分配给library_membership_numbermodel是包含字段的对象。您应该指定该字段并进行分配:library_membership_number= '...'model无法解析您将存储的字段。

  • user_id

    提前定义了foreignkey。它可以接受另一个model对象来存储:user_id = user。不要将user的属性称为LibraryUser存储。