【问题标题】:I'm trying to copy few columns from one table to another in Django我正在尝试在 Django 中将几列从一个表复制到另一个表
【发布时间】:2015-11-25 09:31:35
【问题描述】:

我正在创建一个具有注册和登录表单的 Django 应用程序。我的注册表包含所有详细信息。我希望将用户名和密码直接复制到登录表中。我如何为其编写字段?

class Sign_up(models.Model):
  first_name = models.CharField(max_length=40)
  last_name = models.CharField(max_length=40)
  email_id = models.CharField(max_length=30)
  user_name = models.CharField(max_length=10)
  password  = models.CharField(max_length=10)

class Login(models.Model):
  log_id = models.ForeignKey(Sign_up)
  user_name = ???????????

【问题讨论】:

  • 首先,您为什么要这样做?其次,永远不会使用密码创建您自己的独立模型;您不得在数据库中以纯文本形式存储密码。 Django 有一个内置的身份验证框架,你应该使用它;您可以提供自己的模型,但您必须从 AbstractBaseUser 继承并使用提供的函数来创建用户和存储密码。

标签: django django-models


【解决方案1】:

正如评论所暗示的,您应该了解数据库规范化。正确的问题不是如何将数据从一个模型复制到另一个模型,而是如何“链接”模型。

因此,我建议您为两个模型添加一个字段:

from django.contrib.auth.models import User

...
    user = models.ForeignKey(User)

然后您需要访问此字段,例如:

Login.objects.get(pk=1).user.username

我也会推荐Django documentation: making queries

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 2022-08-07
    • 2015-01-18
    • 1970-01-01
    相关资源
    最近更新 更多