ограничение peewee not null не удалось, добавление _id в класс - PullRequest
0 голосов
/ 13 сентября 2018

Вот модель, которую я пытаюсь реализовать в peewee / python:

class Person(BaseModel):
    name = peewee.Charfield(unique=True)
    rate = peewee.FloatField()

class Unit(BaseModel):
    person = peewee.ForeignKeyField(Person)

Я создаю таблицы, затем пытаюсь создать фиктивные данные в базе данных:

 from above import Person, Unit

 ben = Person()
 ben.name = "Ben Dover"
 ben.rate = 21.5
 ben.save()

 hour_one = Unit()
 hour_one.person = ben
 hour_one.save()

Когда я запускаю обе программы, я получаю сообщение об ошибке второй программы в строке hour_one.save() со следующей ошибкой:

peewee.IntegrityError: NOT NULL constraint failed: unit.person_id

Я не знаю, почему peewee думает, что у человека есть атрибут person_id. Я думал, что person.name будет уникальный столбец идентификации в этой таблице. Я попытался заменить unique=True на primary_key=True, а также попытался включить оба, но ошибка сохраняется.

Я мог бы понять, если бы я не поставил ben.name, но я сделал. Так какая информация отсутствует, что она считает нулевой?

...