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

标签 python mysql django

我有一个模型,它是 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_numbermodel 是一个包含字段的对象。您应该指定字段并分配它:library_membership_number= '...',否则model 无法解析您将存储哪个字段。

  • user_id

    预先定义了foreignkey。它可以接受另一个 model 对象来存储:user_id = user。不要调用user的属性存储在LibraryUser中。

关于python - 在 Django 中创建自定义用户模型的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049619/

相关文章:

python - 使用逻辑回归进行多点触摸响应模型(python/pandas)?

python - 如何在 Django 中通过外键对过滤查询?

python - * : 'Nonetype' and 'Float' with array problem [duplicate]的不受支持的操作数类型的Python错误

mysql - SQL Left Join 但不希望左表中的所有记录

python - 在使用 CreateView 保存表单之前做一些事情

python - 如何折叠多列pandas

php - 如何从我的 WAMP 环境迁移到使用 MSSQL?

mysql - 多对多标签条件选择

python - 如何使用 Django 作为别名发送电子邮件

python - Django 和外键