django.db.utils.IntegrityError:外键约束失败

2023-11-21

My 模型.py

class Order(models.Model):
    user = models.ForeignKey(User, blank=True, null=True, on_delete=models.PROTECT)
    customer_email = models.EmailField(blank=True, null=True, default=None)
    customer_name = models.CharField(max_length = 64, blank=True, null=True, default=None)
    customer_phone = models.CharField(max_length = 48, blank=True, null=True, default=None)
    customer_address = models.CharField(max_length = 128, blank=True, null=True, default=None)
    total_price = models.DecimalField(max_digits=10, decimal_places=2, default=0) #total price for all products in order
    comments = models.TextField(blank=True, null=True, default=None)
    status = models.ForeignKey(Status, on_delete=models.PROTECT)
    created = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated = models.DateTimeField(auto_now_add=False, auto_now=True)

    def __str__(self):
        return "Заказ %s %s" % (self.id, self.status.name)

    class Meta:
        verbose_name = "Заказ"
        verbose_name_plural = "Заказы"

    def save(self, *args, **kwargs):
        super(Order, self).save(*args, **kwargs)

My views.py.

def checkout(request):
    session_key = request.session.session_key
    products_in_basket = ProductInBasket.objects.filter(session_key=session_key, is_active=True)
    form = CheckoutContactForm(request.POST or None)
    if request.POST:
        print(request.POST)
        if form.is_valid():
            print("OK")
            data = request.POST
            name = data.get("name", "34343434")
            phone = data["phone"]
            user, created = User.objects.get_or_create(username=phone, defaults={"first_name": name})

            order = Order.objects.create(user=user, customer_name=name, customer_phone=phone, status_id=1)
            for name, value in data.items():
                if name.startswith("product_in_basket_"):
                    product_in_basket_id = name.split("product_in_basket_")[1]
                    product_in_basket = ProductInBasket.objects.get(id=product_in_basket_id)

                    product_in_basket.nmb = value
                    product_in_basket.order = order
                    product_in_basket.save(force_update=True)

                    ProductInOrder.objects.create(
                        product=product_in_basket.product, 
                        nmb=product_in_basket.nmb, 
                        price_per_item=product_in_basket.price_per_item, 
                        total_price=product_in_basket.total_price, 
                        order=order
                    )

        else:
            print("ERROR")
    return render(request, 'orders/checkout.html', locals())

错误:

Traceback (most recent call last):
  File "C:\Users\Nikita Shuliak\AppData\Local\Programs\Python\Python37- 
 32\lib\site-packages\django-2.1rc1-py3.7.egg\django\core\handlers\exception.py",   line 34, in inner
    response = get_response(request)
  File "C:\Users\Nikita Shuliak\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1rc1-py3.7.egg\django\core\handlers\base.py", line 126, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\Nikita Shuliak\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1rc1-py3.7.egg\django\core\handlers\base.py", line 124, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\Nikita Shuliak\Desktop\NJB\startup\orders\views.py", line 59, in checkout
    order = Order.objects.create(user=user, customer_name=name, customer_phone=phone, status_id=1)
  File "C:\Users\Nikita Shuliak\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1rc1-py3.7.egg\django\db\utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "C:\Users\Nikita Shuliak\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django-2.1rc1-py3.7.egg\django\db\backends\base\base.py", line 239, in _commit
    return self.connection.commit()
django.db.utils.IntegrityError: FOREIGN KEY constraint failed

状态模型 Reddit

也许问题就出在这里。我添加了一些代码后出现了问题,您可以在评论中看到这些代码。 “最后一个错误表明 pk=1 的 Status 已经存在,但您之前的错误表明相反。请将您的 Status 模型添加到您的问题中;让我们看看是否还有其他条件需要考虑。”:

class Status(models.Model):
    name = models.CharField(max_length = 16, blank=True, null=True, default=None)
    is_active = models.BooleanField(default=True)
    created = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated = models.DateTimeField(auto_now_add=False, auto_now=True)

    def __str__(self):
        return "Статус %s" % self.name

错误在行中:

order = Order.objects.create(user=user, customer_name=name, customer_phone=phone, status_id=1)

您必须传递该字段的状态实例status因为它是一个ForeignKey场地。只需设置status_id为整数将不起作用。 罢工> 我纠正了,它可以工作;看这个帖子.

你的错误可能发生是因为user (or user_id) or status (or status_id) 引用相关数据库表中不存在的实例。

您确定状态为pk=1?是否进行手术Status.objects.get(pk=1)成功?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django.db.utils.IntegrityError:外键约束失败 的相关文章

  • 如何确定非阻塞套接字是否真正连接?

    这个问题不仅限于Python 这是一个一般的套接字问题 我有一个非阻塞套接字 想要连接到一台可访问的机器 在另一端 该端口不存在 为什么 select 仍然成功 我预计会超时 sock send 因管道损坏而失败 select 之后如何确定
  • python - 是否可以扩展 xml-rpc 可以序列化的事物集?

    我看到几个问题询问如何发送numpy ndarray通过 xml rpc 调用 这不能开箱即用 因为正如 xml rpc 中所述docs https docs python org 2 library xmlrpclib html 有一组固
  • 从字符串到类型的词法转换

    最近 我尝试用Python存储和读取文件中的信息 遇到了一个小问题 我想从文本文件中读取类型信息 从 string 到 int 或 float 的类型转换非常有效 但从 string 到 type 的类型转换似乎是另一个问题 当然 我尝试了
  • Python 3 __getattribute__ 与点访问行为

    我读了一些关于 python 的对象属性查找的内容 这里 https blog ionelmc ro 2015 02 09 understanding python metaclasses object attribute lookup h
  • 如何在没有 openshift 的情况下托管 Django localhost 应用程序?

    我已经在本地主机中创建了一个 Django 应用程序 现在我需要在互联网上托管 我已经尝试过开档 https www openshift com and 任何地方的Python https www pythonanywhere com也 但
  • Python - 用逗号分割,跳过括号内的内容

    我需要用逗号分隔字符串 但我对这种情况有一个问题 TEXT EXAMPLE THIS IS A EXAMPLE BUT NOT WORKS FOR ME SECOND THIRD 我想拆分并得到 var 0 TEXT EXAMPLE THI
  • Pandas重置索引未生效[重复]

    这个问题在这里已经有答案了 我不确定我在哪里误入歧途 但我似乎无法重置数据帧上的索引 当我跑步时test head 我得到以下输出 正如您所看到的 数据帧是一个切片 因此索引超出范围 我想做的是重置该数据帧的索引 所以我跑test rese
  • 错误:permission_manager_qt.cpp(82) 不支持的权限类型:13

    我正在开发具有内置浏览器功能的 python 代码 PyQt 5 13 import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets imp
  • 如果字段值在外部列表中,Django 会注释布尔值

    想象一下我有这个 Django 模型 class Letter models Model name models CharField max length 1 unique True 还有这个列表 vowels a e i o u 我想查询
  • 如何使用 python urllib 在 HTTP/1.1 中保持活力

    现在我正在这样做 Python3 urllib url someurl headers HOST somehost Connection keep alive Accept Encoding gzip deflate opener urll
  • 如何通过双击在浏览器中打开 ipynb 文件

    以前 我安装了 Canopy 当时 我只需双击 ipynb 文件并在浏览器中打开它们即可 但是 后来我需要Anaconda 一旦我安装了它 这个功能就没有了 现在我只希望能够简单地双击 ipynb 文件 然后该文件就会在 Firefox 中
  • 如何使用Python的super()来更新父值?

    我对继承很陌生 之前所有关于继承和 Python 的 super 函数的讨论都有点超出我的理解 我当前使用以下代码来更新父对象的值 usr bin env python test py class Master object mydata
  • 将输入发送到 python 子进程而不等待结果

    我正在尝试为一段代码编写一些基本测试 该代码通常通过 stdin 无休止地接受输入 直到给出特定的退出命令 我想检查程序是否在给出一些输入字符串时崩溃 经过一段时间来考虑处理 但似乎无法弄清楚如何发送数据而不是陷入等待我不知道的输出关心 我
  • conda-env list / conda info --envs 如何查找环境?

    我一直在尝试 anaconda miniconda 因为我的用户使用随 miniconda 安装的结构生物学程序 并且作者都没有 A 考虑到可能存在其他 miniconda 应用程序 B 他们的程序将在多用户环境中使用 因此 使用 Arch
  • select() 可以在 Windows 下使用 Python 中的文件吗?

    我正在尝试在 Windows 下运行以下 python 服务器 An echo server that uses select to handle multiple clients at a time Entering any line o
  • 如何有效地从 loadmat 函数生成的嵌套 numpy 数组中提取值?

    python中是否有更有效的方法从嵌套的python列表中提取数据 例如A array array 12000000 dtype object 我一直在使用A 0 0 0 0 当你有很多像 A 这样的数据时 这似乎不是一个有效的方法 我也用
  • 查找给定节点的最高权重边

    我在 NetworkX 中有一个有向图 边缘的权重从 0 到 1 表示它们发生的概率 网络连通性非常高 所以我想修剪每个节点的边缘 只保留最高概率的节点 我不确定如何迭代每个节点并仅保留最高权重in edges在图中 有没有一个networ
  • Flask WTForms 使用变量自动填充 StringField

    我有一个表格 我想用上一页收到的信息自动填充一些字段 但如果他们想调整它 它需要是可更改的 我正在为我的 SelectField 使用动态创建的列表 但添加 StringField 并不成功 请参阅下面的我的代码 forms py clas
  • Scipy 稀疏 Cumsum

    假设我有一个scipy sparse csr matrix代表下面的值 0 0 1 2 0 3 0 4 1 0 0 2 0 3 4 0 我想就地计算非零值的累积和 这会将数组更改为 0 0 1 3 0 6 0 10 1 0 0 3 0 6
  • Python - 如何查询定义方法的类?

    我的问题有点类似于this one https stackoverflow com questions 5520580 how do you get all classes defined in a module but not impor

随机推荐

  • 我添加到图表中的补丁在 alpha=1 时不是不透明的。为什么?

    我想在图表上添加一个矩形 通过我找到的所有文档 默认情况下矩形应该是不透明的 透明度由 alpha 参数控制 但是 即使 alpha 1 我也无法让矩形显示为不透明 我是否做错了什么 或者我还需要了解图形与补丁交互的方式吗 这是一个玩具示例
  • Php artisan 在 Windows 命令提示符下显示奇怪的字符

    Please can anyone help me with this error I m getting on command prompt for windows 10 Whenever I try to utilize the php
  • 如何将主题动态传递给kafka监听器?

    几天以来 我一直在尝试将主题动态传递给 Kafka 侦听器的方法 而不是通过 Java DSL 中的键使用它们 周围有人以前做过这件事 或者可以阐明实现这一目标的最佳方法是什么 我发现最简单的解决方案是使用 SpEL Autowired p
  • 在C程序中获取系统命令输出[重复]

    这个问题在这里已经有答案了 有更好的方法吗 int numOfCPU system grep c processor proc cpuinfo gt gt tmp cpuinfo FILE fp fopen tmp cpuinfo r fs
  • 复选框CSS无法更改复选框的背景颜色[重复]

    这个问题在这里已经有答案了 我想将我的复选框更改为这种颜色 FA9E57 我正在使用 bootstrap v 4 6 这是我的复选框代码 input type checkbox width 20px height 20px backgrou
  • Object.assign 未正确复制

    我正在使用 VueJS 我有一个接收对象作为参数的方法 然后我克隆这个对象Object assign Component vue export default methods activateEditMode item this editI
  • 使用 Seaborn 绘制具有最小/最大着色的时间序列图

    I am trying to create a 3 line time series plot based on the following data in a Week x Overload graph where each Cluste
  • Mysql 从单列中选择计数值

    A 有一个名为 key 的列 1 1 2 2 2 2 3 现在我用 3 个查询来完成 SELECT count key as k FROM test WHERE key 1 SELECT count key as k FROM test W
  • 在 Lua 列表中搜索项目

    如果我有一个这样的项目列表 local items apple orange pear banana 如何检查 orange 是否在此列表中 在Python中我可以这样做 if orange in items do something Lu
  • 允许在“属性”窗口中使用多行字符串属性

    我有一个带有字符串属性的 Windows 窗体用户控件 用于设置文本框的文本 这个字符串can是多线的 我注意到 在某些具有文本属性的控件上 您不会被迫在单行属性文本框中键入内容 而是会弹出一个小窗口 您可以在其中键入多行内容 事实上 Wi
  • 是否可以在mysql视图中创建自增id列?

    我在 MySql 中创建了一个视图 但现在我的要求是在该视图中创建一个应该自动递增的 Id 列 我目前的观点是 CREATE VIEW pending assign report view AS select cg group name c
  • 使用 javascript 检查日期范围内是否存在周末

    想知道是否有人有解决方案来检查两个日期及其范围之间是否存在周末 var date1 Apr 10 2014 var date2 Apr 14 2014 funck isWeekend date1 date2 do function retu
  • 在 C++ 中使用带 ref-qualifier 的子成员函数重载不带 ref-qualifier 的父成员函数

    在 C 中 不能在一个类中用没有 ref qualifier 的成员函数重载带有 ref qualifier 的成员函数 但同时可以从父类继承一个成员函数并在子类中重载它 如示例所示 struct A void f void f overl
  • delphi中如何对日期时间进行编码

    我知道如何在Delphi中使用encodeate将单个YY MM和DD编码到日期时间字段中 或使用encodetime将单个HH SS MM和MS编码到日期时间字段中 但是有没有办法将日期和时间指定到日期时间中场地 因为使用encodeda
  • 在 IIS 上运行时,ASP.NET Web 应用程序中的模拟不起作用

    我正在开发在 Intranet 环境中工作的 ASP NET 4 0 MVC3 Web 应用程序 该应用程序使用 Windows 身份验证 其应用程序池由在域控制器上设置了 spn 的域用户运行 使用 Kerberos 进行身份验证 在 I
  • 如何在Java中拆分HashMap

    我想知道是否可以将 HashMap 拆分为更小的子映射 就我而言 我有一个包含 100 个元素的 HashMap 我想从原始 HashMap 创建 2 个 或更多 更小的 HashMap 第一个包含从 0 到 49 的条目 第二个包含从 5
  • SVN分支的一个分支

    我们的代码存储库包括 树干 分支 A 从主干开始 分支 B 从分支 A 开始 在分支 A 上工作的程序员希望将其重新集成到主干中 并继续仅在主干上工作 我们还不想将分支 B 重新集成到分支 A 中 是否可以让分支 B 与主干相关 而不是与分
  • 如何在不损坏文本的情况下去除点/噪音?

    我正在使用 OpenCV 和 Python 处理图像 我需要从图像中去除点 噪声 我尝试了扩张 使点变小 但是文本被损坏了 我还尝试了两次循环膨胀和一次腐蚀 但这并没有给出令人满意的结果 我还有其他方法可以实现这一目标吗 谢谢 EDIT 我
  • 当用户在输入字段中键入字符时突出显示 DIV 的文本

    我看过很多关于使用 javascript 在 DIV 中突出显示文本的帖子 但没有一个完全符合我的要求 我需要做的是在用户输入搜索词时逐个字符地突出显示特定 DIV 中的文本 相反 当用户退格或删除字符时 我需要 取消突出显示 同一 DIV
  • django.db.utils.IntegrityError:外键约束失败

    My 模型 py class Order models Model user models ForeignKey User blank True null True on delete models PROTECT customer ema