django.db.utils.IntegrityError:FOREIGNKEY制約が失敗しました

Nikita Shuliak |

私のmodels.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)

私の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

ステータスモデルEDDIT

多分問題はここにあります。コメントで見ることができるいくつかのコードを追加した後、問題が発生します。「この最後のエラーは、pk = 1のステータスがすでに存在することを示していますが、前のエラーは反対を示しています。ステータスモデルを質問に追加してください。他に考慮すべき条件があるかどうかを確認してください。」:

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(またはuser_id)またはstatus(またはstatus_id)のいずれかが、関連するデータベーステーブルに存在しないインスタンスを参照しているために、エラーが発生する可能性があります。

ステータスがありpk=1ますか?操作はStatus.objects.get(pk=1)成功しましたか?

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

django.db.utils.IntegrityError:NOTNULL制約が失敗しました

django.db.utils.IntegrityErrorが発生します:コマンドでFOREIGNKEY制約が失敗しました

Createsuperuser django.db.utils.IntegrityError:NOTNULL制約に失敗しました

django.db.utils.IntegrityError:UNIQUE制約に失敗しました:mode_setting.user_id

django.db.utils.IntegrityError:UNIQUE制約に失敗しました:auctions_bids.item_id

django.db.utils.IntegrityError:NOT NULL制約に失敗しました:app_user.zip

django.db.utils.IntegrityError:UNIQUE制約に失敗しました:rango_category__new.slug

django.db.utils.IntegrityError:NOT NULL制約に失敗しました:app.area_id

django.db.utils.IntegrityError:NOT NULL制約に失敗しました:polls_article.reporter_id

django.db.utils.IntegrityError:NOT NULL制約に失敗しました:users_profile.user_id

django.db.utils.IntegrityError:NOT NULL制約に失敗しました:appname_modelName.id

django.db.utils.IntegrityError:NOT NULL制約に失敗しました:main_profile.name

django.db.utils.IntegrityError: NOT NULL 制約が失敗しました: app_users.key_value_id

django.db.utils.IntegrityError: NOT NULL 制約が失敗しました: app_users.key_value_id

Django tests.py django.db.utils.IntegrityError:UNIQUE制約に失敗しました:auth_user.username

Djangoスローエラーdjango.db.utils.IntegrityError:UNIQUE制約に失敗しました:mediaSort_userdata.user_id

django.db.utils.IntegrityError:NOT NULL制約に失敗しました:pages_add_music.uploadエラー

'django.db.utils.IntegrityError:UNIQUE制約に失敗しました:'属性を削除した後もエラーが表示されます

django.db.utils.IntegrityError:NOT NULL制約が失敗しました:products_product.image画像フィールドのエラー

django.db.utils.IntegrityError:シリアライザーで.save()関数を呼び出すときにUNIQUE制約が失敗しました

テストは `django.db.utils.IntegrityError`で失敗します

Django Pythonloaddataがdjango.db.utils.IntegrityErrorで失敗する

django.db.utils.IntegrityError:重複するキー値が一意の制約に違反しています

django.db.utils.IntegrityError:テーブル "authtoken_token"の挿入または更新が外部キー制約に違反しています

Django:django.db.utils.IntegrityError:(1215、 '外部キー制約を追加できません')

django.db.utils.IntegrityErrorの取得:重複するキー値が一意の制約に違反していますが、値が存在しません

django.db.utils.IntegrityError:重複するキー値が一意の制約「django_migrations_pkey」に違反しています

django.db.utils.IntegrityError:重複するキー値が一意の制約「spirit_category_category_pkey」に違反しています

Django 令牌對象更新錯誤:django.db.utils.IntegrityError:唯一約束失敗:authtoken_token.user_id

TOP 一覧

  1. 1

    グラフからテーブルに条件付き書式を適用するにはどうすればよいですか?

  2. 2

    ソートされた検索、ターゲット値未満の数をカウント

  3. 3

    Unity:未知のスクリプトをGameObject(カスタムエディター)に動的にアタッチする方法

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    Ansibleで複数行のシェルスクリプトを実行する方法

  6. 6

    Reactでclsxを使用する方法

  7. 7

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  8. 8

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  9. 9

    Pythonを使用して同じ列の同じ値の間の時差を取得する方法

  10. 10

    PowerShellの分割ファイルへのヘッダーの追加

  11. 11

    Chromeウェブアプリのウェブビューの高さの問題

  12. 12

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  13. 13

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  14. 14

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  15. 15

    Windows 10の起動時間:以前は20秒でしたが、現在は6〜8倍になっています

  16. 16

    MLでのデータ前処理の背後にある直感

  17. 17

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  20. 20

    ファイル内の2つのマーカー間のテキストを、別のファイルのテキストのセクションに置き換えるにはどうすればよいですか?

  21. 21

    ネットワークグラフで、ネットワークコンポーネントにカーソルを合わせたときに、それらを強調表示するにはどうすればよいですか?

ホットタグ

アーカイブ