[英]IntegrityError Primary Key Invalid (python-django)
我正在看一个senddex课,但出现此错误,为什么?
我在这里看到了类似的问题,但找不到答案
from django.db import models
from datetime import datetime
# Create your models here.
class tutorialcategory(models.Model):
tutorial_category=models.CharField(max_length=200)
category_summary=models.CharField(max_length=200)
category_slug=models.CharField(max_length=200, default=1)
class Meta:
verbose_name_plural="Categories"
def __str__(self):
return self.tutorial_category
class tutorialseries(models.Model):
tutorial_series=models.CharField(max_length=200)
tutorial_category=models.ForeignKey(tutorialcategory, verbose_name="Category", on_delete=models.SET_DEFAULT)
series_summary=models.CharField(max_length=200)
class Meta:
verbose_name_plural="series"
def __str__(self):
return self.tutorial_series
class tutorial(models.Model):
tutorial_title=models.CharField(max_length=200)
tutorial_content=models.TextField()
tutorial_published=models.DateTimeField("date published", default=datetime.now())
tutorial_series=models.ForeignKey(tutorialseries, default=1, verbose_name="series", on_delete=models.SET_DEFAULT)
tutorial_slug=models.CharField(max_length=200, default=1)
def __str__(self):
return self.tutorial_title
下面是错误的样子:
django.db.utils.IntegrityError:表'main_tutorial'中具有主键'1'的行具有无效的外键:main_tutorial.tutorial_series_id包含的值'1'在main_tutorialseries.id中没有对应的值。
在tutorial
模型上,您是否有一个外键tutorial_series
定义为:
tutorial_series=models.ForeignKey(tutorialseries, default=1, ...
该FK(外键)的默认值为1 ,但是,当您执行代码时,您试图保存一个tutorial
但它们不是Id = 1
任何tutorial_series
。
尝试创建一个tutorialseries
(Id = 1),或仅将默认值更改为“无”。 像这样:
tutorial_series=models.ForeignKey(tutorialseries, null=True, blank=True, ...
您设置了该帖子的标题:
IntegrityError主键无效(python-django)
但是,无效的不是主键。 无效的是外键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.