【问题标题】:How to insert data into a relational one to one table in django?如何将数据插入到 django 中的关系一对一表中?
【发布时间】:2019-04-15 11:14:00
【问题描述】:

我有一个 UserProfile 表,它与默认的 Django User 表相关。这是它的外观。

class UserProfile(models.Model):
    user = user.OneToOneField(User, on_delete=models.CASCADE)
    section = models.CharField(max_length=255, blank=True)
    year = models.IntegerField(null=True, blank=True)
    course = models.CharField(max_length=255, blank=True)
    qrcode = models.CharField(max_length=255, blank=True)
    present = models.BooleanField(default=False)

我正在尝试使用Django Shell 将数据插入到 UserProfile 表中。

from users.models import UserProfile

a = UserProfile(qrcode="hello")
a.save()

这就是我一直知道的将数据插入表的方法,它一直有效。但是当我尝试在UserProfile 模型中执行此操作时。我得到了这个例外。 NOT NULL 约束失败:users_userprofile.user_id。这又是由以下异常引起的格式错误:RelatedObjectDoesNotExist:UserProfile 没有用户

我有点明白我需要提供一个用户实例。但我不知道如何。有人可以帮帮我吗。

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    首先你需要创建用户。

    u1 = User(username='user1')
    
    u1.save()
    

    创建用户配置文件。将“父”对象的 ID 作为该对象的 ID:

    v1 = UserProfile(user=u1, ....)
    v1.save()
    

    参考this

    【讨论】:

      【解决方案2】:

      你需要先创建你的用户

      user = User.objects.create(username='user')
      

      然后你可以这样做:

      user_profile = UserProfile.objects.create(user=user, ...)
      

      【讨论】:

        猜你喜欢
        • 2013-02-02
        • 2011-09-27
        • 1970-01-01
        • 1970-01-01
        • 2017-11-23
        • 1970-01-01
        • 1970-01-01
        • 2011-10-11
        • 1970-01-01
        相关资源
        最近更新 更多