【问题标题】:Django - Sqlite DatabaseDjango - Sqlite 数据库
【发布时间】:2018-02-22 14:18:45
【问题描述】:

非常感谢任何帮助。

我正在使用 Django 和 SQLite,我正在尝试将自动生成的 auth_user 表与我使用模型创建的输入表连接起来。

模型.py;

class Input(models.Model):
height = models.IntegerField(default=0)
waist = models.IntegerField(default=0)
bust = models.IntegerField(default=0)
hips = models.IntegerField(default=0)

class Meta:
db_table = "Project_input"

加入表格的目的是,当用户登录时,他们输入到我的输入表格中的信息只与它们相关联。

我知道我必须为这个模型添加一个外键!但是如何引用 auth_user 表呢?

【问题讨论】:

  • 呃,你使用 ForeignKey 字段。你有什么问题?
  • @Daniel Roseman 如何找到 auth_user 表的 id 属性的名称?
  • 为什么你认为你需要这样做? (毫不奇怪,它被称为id,但这里根本不需要它。)
  • user = models.ForeignKey(settings.AUTH_USER_MODEL)
  • @iklinac 谢谢

标签: django sqlite


【解决方案1】:

只需在模型中添加一个 ForeignKey 字段。

class Input(...):
    user = models.ForeignKey('auth.User')  # (or `settings.AUTH_USER_MODEL`)
    # ...

请参阅Django docs,了解外键和其他多对一关系。

【讨论】:

    【解决方案2】:

    我认为,将模型编辑为此所需的一切

    模型.py

    from django.contrib.auth.models import User 
    
    class Input(models.Model):
        user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='inpute')
        height = models.IntegerField(default=0)
        waist = models.IntegerField(default=0)
        bust = models.IntegerField(default=0)
        hips = models.IntegerField(default=0)
    
       class Meta:
            db_table = "Project_input"
    

    这样,您就可以与 Django 提供的类用户建立一对一的关系。

    【讨论】:

      猜你喜欢
      • 2015-05-11
      • 1970-01-01
      • 2021-09-21
      • 2015-10-24
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2016-09-04
      相关资源
      最近更新 更多