Поле Django ManyToMany дает IntegrityError - PullRequest
0 голосов
/ 05 ноября 2018

Я использую Django 2.1.2

У меня есть 2 модели Items и Quotation.

class Item(models.Model):
    name = models.CharField(max_length=200)

    def __str__(self):
            return self.name

class Quotation(models.Model):
    company = models.ForeignKey('Company', on_delete=models.CASCADE)
    unit_rate = models.CharField(max_length=200)
    item = models.ManyToManyField(Item)

    def __str__(self):
            return self.company.company_name

Теперь, когда я добавляю Item, он работает правильно.

Но когда я пытаюсь добавить цитату в панели администратора, она дает мне null value in column "item_id" violates not-null constraint

Я новичок в Джанго. Было бы замечательно, если бы кто-то мог указать, что мне не хватает.

1 Ответ

0 голосов
/ 05 ноября 2018

Похоже, вы могли изменить Quotation.item с ForeignKey или OneToOneField на ManyToManyField поле.

После внесения этого изменения вам нужно запустить manage.py makemigrations, а затем manage.py migrate, чтобы создать, а затем запустить необходимые миграции баз данных. Обратите внимание, что любые существующие данные в столбце Quotation.item_id будут удалены, если вы не напишите миграцию для копирования данных в поле «многие ко многим».

...