Django2.X版本外键表插入数据主键创建失败

首先在models中创建两张表,一张书信息表,一张出版社信息表,对应关系为一对多

class Book(models.Model):
    title = models.CharField(max_length=64)
    price = models.IntegerField()
    color = models.CharField(max_length=64)
    #null =True 允许字段为空,  blank=True django对数据自动验证不为空,所以需设置blank属性,传输该字段时可以为空
    page  = models.IntegerField(null=True,blank=True)
    publisher = models.ForeignKey("Publisher",on_delete=models.CASCADE)  #关联表外键,一对多关系,on_delete属性防止两个表数据重复    #接收关联表对象
    author = models.ManyToManyField("Author")  #多对多关系

    def __str__(self):

        return "%s"%[self.title,self.price,self.color,self.page,self.publisher]
class Publisher(models.Model):
    name = models.CharField(max_length=128)
    city = models.CharField(max_length=128)

    def __str__(self):
        return super().__str__()

当出版社信息表中没有数据时,创建Book信息表:

                Book.objects.create(
                    title="老人与海",
                    price=19.6,
                    color= "blue",
                    page = 600,
                    publisher_id=1,
                    # publisher= publisher[0]
                )

报错信息为:
django.db.utils.IntegrityError: FOREIGN KEY constraint failed
解决方案:
需要在Publisher表中先新增数据才可以创建外键

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值