«sqlite3.IntegrityError: ограничение NOT NULL не выполнено» ИЛИ «TypeError: дополнительные аргументы должны иметь имя <дPython

Программы на Python
Anonymous
«sqlite3.IntegrityError: ограничение NOT NULL не выполнено» ИЛИ «TypeError: дополнительные аргументы должны иметь имя <д

Сообщение Anonymous »

Я получаю рекурсивную ошибку.
Вот код, в котором я получаю сообщение об ошибке:

Код: Выделить всё

class Shooter(db.Model):
__tablename__ = "shooters"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
team_id = db.Column(db.Integer, db.ForeignKey('teams.id'),
nullable=False)

@property
def total_score(self):
scores = map(lambda a: a.score, self.scores)
total = reduce(lambda a, b: a+b, scores)
return total
Вот ошибка, которую я получаю с этим кодом, которую я буду называть «Ошибка 1»:

Код: Выделить всё

sqlite3.IntegrityError: NOT NULL constraint failed: shooters.team_id
После просмотра SO в поисках ответа я узнал, что могу переписать

Код: Выделить всё

team_id = db.Column(db.Integer, db.ForeignKey('teams.id'),
nullable=False)
как

Код: Выделить всё

team_id = db.Column(db.Integer, db.ForeignKey('teams.id'),
null=True)
но это вернет еще одну ошибку: «Ошибка 2»:

Код: Выделить всё

TypeError: Additional arguments should be named _, got 'null'
Я снова вернулся к SO, чтобы найти ответ, и он сказал мне, что установка nullable=False вместо null=True исправит это, но это вернет ошибку 1...
Итак, если исправление ошибки 1 приведет меня к ошибке 2 и наоборот, как я могу исправить эту рекурсивную ошибку?
Спасибо.>

Подробнее здесь: https://stackoverflow.com/questions/735 ... ditional-a

Вернуться в «Python»