如何在Django的一对一关系表中插入数据?

时间:2019-04-15 11:14:00

标签: python django django-models

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

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) 将数据插入UserProfile表。

Django Shell

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

我有点理解,我需要以某种方式提供一个用户实例。但是我对如何一无所知。有人可以帮帮我吗。

2 个答案:

答案 0 :(得分:1)

首先,您需要创建用户。

u1 = User(username='user1')

u1.save()

创建一个UserProfile。将“父”对象的ID传递为该对象的ID:

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

推荐this

答案 1 :(得分:0)

您需要先创建您的用户

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

然后您可以执行以下操作:

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