Вот модель, которую я пытаюсь реализовать в 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
, но я сделал. Так какая информация отсутствует, что она считает нулевой?