«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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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