IntegrityError:对表“ carts_cart_items”进行插入或更新违反了外键约束

时间:2020-01-28 08:15:13

标签: sql django postgresql

DETAIL: Key (cartitem_id)=(11) is not present in table "carts_cartitem"."carts_cart_items_cartitem_id_197166f7_fk_carts_cartitem_id"
DETAIL:  Key (cartitem_id)=(11) is not present in table "carts_cartitem".

猜我在此错误中缺少什么:

完整追溯:

回溯(最近一次通话最后一次):文件“ manage.py”,第21行,在 main()文件“ manage.py”,第17行,位于main中 execute_from_command_line(sys.argv)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ core \ management__init __。py”, 第381行,在execute_from_command_line utility.execute()文件中 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ core \ management__init __。py”, 行375,在执行 self.fetch_command(子命令).run_from_argv(self.argv)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ core \ management \ base.py”, 第323行,位于run_from_argv self.execute(* args,** cmd_options)文件中 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ core \ management \ base.py”, 第364行,在执行输出= self.handle(* args,** options)文件中 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ core \ management \ base.py”, 第83行,包装的res = handle_func(* args,** kwargs)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ core \ management \ commands \ migrate.py”, 第234行,句柄fake_initial = fake_initial,文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ migrations \ executor.py”, 第117行,处于迁移状态= self._migrate_all_forwards(状态,计划, full_plan,fake = fake,fake_initial = fake_initial)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ migrations \ executor.py”, 第147行,处于_migrate_all_forwards状态= self.apply_migration(状态, 迁移,fake = fake,fake_initial = fake_initial)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ migrations \ executor.py”, 第245行,位于apply_migration状态= migration.apply(state, schema_editor)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ migrations \ migration.py”, 第124行,在apply operation.database_forwards(self.app_label, schema_editor,old_state,project_state)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ migrations \ operations \ fields.py”, 249行,在database_forwards schema_editor.alter_field(from_model, from_field,to_field)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ backends \ base \ schema.py”, 520行,在alter_field中返回self._alter_many_to_many(model, old_field,new_field,strict)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ backends \ base \ schema.py”, _alter_many_to_many中的第867行 new_field.remote_field.through._meta.get_field(new_field.m2m_reverse_field_name()), 文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ backends \ base \ schema.py”, 535行,在alter_field old_db_params,new_db_params中,严格)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ backends \ postgresql \ schema.py”, 第122行,在_alter_field new_db_params中,严格,文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ backends \ base \ schema.py”, 第758行,位于_alter_field self.execute(self._create_fk_sql(model, new_field,“ fk %(to_table)s _%(to_column)s”)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ backends \ base \ schema.py”, 执行cursor.execute(sql,params)文件中的第137行 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ backends \ utils.py”, 第99行,在执行中返回super()。execute(sql,params)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ backends \ utils.py”, 第67行,在execute中返回self._execute_with_wrappers(sql,params, many = False,executor = self._execute)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ backends \ utils.py”, 第76行,_execute_with_wrappers中的返回执行程序(sql,params,许多, 上下文)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ backends \ utils.py”, 第84行,在_execute中返回self.cursor.execute(sql,params)文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ utils.py”,第89行, 在退出中,将dj_exc_value.with_traceback(traceback)从 exc_value文件 “ C:\ Users \ hp \ Anaconda3 \ lib \ site-packages \ django \ db \ backends \ utils.py”, 第84行,在_execute中返回self.cursor.execute(sql,params) django.db.utils.IntegrityError:在表上插入或更新 “ carts_cart_items”违反了外键约束 “ carts_cart_items_cartitem_id_197166f7_fk_carts_cartitem_id”详细信息: 表“ carts_cartitem”中没有键(cartitem_id)=(11)。

型号:

class CartItem(models.Model):
    item = models.ForeignKey(Item, on_delete=models.CASCADE)
    quantity = models.IntegerField(default=1)
    created = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated = models.DateTimeField(auto_now_add=False, auto_now=True)

    def __unicode__(self):
        return item.title

class Cart(models.Model):
    items = models.ManyToManyField(CartItem, null=True, blank=True)
    products = models.ManyToManyField(Item, null=True, blank=True)
    total = models.DecimalField(max_digits=100, decimal_places=2, default=0.00)
    created = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated = models.DateTimeField(auto_now_add=False, auto_now=True)
    active = models.BooleanField(default=True)

    class Meta:
        get_latest_by = "updated"


    def __unicode__(self):
        return "Card Id: %s" %(self.i

0 个答案:

没有答案