Создание объектов в базе данных: FOREIGN KEY constraint failed

Когда я пытаюсь создать объект в моей базе данных, он выдает мне эту ошибку

 FOREIGN KEY constraint failed

Я не понимаю, почему. У кого-нибудь есть идеи?

models.py

from django.contrib.auth.models import User
from django.db import models

class Account(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
    accountid = models.CharField(max_length=100)
    mt5password = models.CharField(max_length=100, default="default")
    mt5server = models.CharField(max_length=100, default="default")
    telegramchannel = models.CharField(max_length=100, default="default")
    riskpertrade = models.FloatField(max_length=100, default="1.0")
    balance = models.FloatField(default=2000)
    winrate = models.CharField(max_length=100)
    riskreward = models.CharField(max_length=100)
    result = models.CharField(max_length=100, default="Not Passed")

    def __str__(self):
        return self.accountid

class AccountHistory(models.Model):
    account = models.ForeignKey(Account, on_delete=models.CASCADE)
    tradeid = models.CharField(max_length=100)
    opendate = models.CharField(max_length=100)
    type = models.CharField(max_length=100)
    volume = models.CharField(max_length=100)
    symbol = models.CharField(max_length=100)
    openprice = models.CharField(max_length=100)
    closedate = models.CharField(max_length=100)
    closeprice = models.CharField(max_length=100)
    profit = models.FloatField()

    def __str__(self):
        return self.tradeid

Вот моя функция для создания объектов базы данных views.py

def secondpage():
        AccountHistory.objects.create(tradeid=30688,
                                    account_id=98765,
                                    opendate="8 mars",
                                    type="buy",
                                    volume=1.25,
                                    symbol="EURUSD",
                                    openprice=1.234,
                                    closedate="9 mars",
                                    closeprice=1.250,
                                    profit=9349.23)

полная ошибка трассировки

File "C:\Users\test\PycharmProjects\TelegramTradeBot\venv\lib\site-packages\django\db\utils.py", line 98, in inner
    return func(*args, **kwargs)
sqlite3.IntegrityError: FOREIGN KEY constraint failed

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\test\PycharmProjects\TelegramTradeBot\venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
  File "C:\Users\test\PycharmProjects\TelegramTradeBot\venv\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\test\PycharmProjects\TelegramTradeBot\mysite\main\views.py", line 79, in addaccount
    secondpage()
  File "C:\Users\test\PycharmProjects\TelegramTradeBot\mysite\main\views.py", line 44, in secondpage
    self.connection.ops.fetch_returned_insert_columns(
  File "C:\Users\test\PycharmProjects\TelegramTradeBot\venv\lib\site-packages\django\db\backends\base\operations.py", line 212, in fetch_returned_insert_columns
    return cursor.fetchone()
  File "C:\Users\test\PycharmProjects\TelegramTradeBot\venv\lib\site-packages\django\db\utils.py", line 97, in inner
    with self:
  File "C:\Users\test\PycharmProjects\TelegramTradeBot\venv\lib\site-packages\django\db\utils.py", line 91, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "C:\Users\test\PycharmProjects\TelegramTradeBot\venv\lib\site-packages\django\db\utils.py", line 98, in inner
    return func(*args, **kwargs)
django.db.utils.IntegrityError: FOREIGN KEY constraint failed


Это потому, что foreignkey не существует, как и говорит вам ошибка. И если вы называете свое поле FK account в вашей модели AccountHistory, почему вы пытаетесь создать его как account_id? Есть ли у вашего AccountHistory поле ID? А также почему вы жестко кодируете все эти значения? И почему вы используете зарезервированные ключевые слова Python в качестве имен полей для ваших моделей? Возможно, немного резковато, но, пожалуйста, не спорьте с ошибками.

Вернуться на верх