Значение sqlalchemy none будет игнорироваться при обновлении связанного спискаPython

Программы на Python
Ответить
Anonymous
 Значение sqlalchemy none будет игнорироваться при обновлении связанного списка

Сообщение Anonymous »

У меня есть две такие модели:

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

class Parent(db.Model):
...
children = db.relationship(Child,  cascade="all,delete-orphan")

class Child(db.Model):
a = db.Column(db.Integer(), primary_key=True, , db.ForeignKey('Parent.id'))
b = db.Column(db.String())
c = db.Column(db.String())

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

parent = Parent.query.get(xxx)
parent.children = [Child(a=123, b="b", c=None), ...]
db.session.add(parent)
db.session.flush()
Если в базе данных уже есть дочерняя запись с a=123, приведенный выше код вызовет такой оператор обновления: обновить дочерний набор b='b' где a=123.
Проблема в том, что он не может обновить значение c до нуля, c =None будет игнорироваться.
Я использую flask-sqlalchemy 2.4.0 и sqlalchemy 1.3.8.
Как обновить его до нуля?
Кроме того, если в базе данных нет записи с a=123, код вызовет вставку SQL, значение none будет успешно вставлено.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ciate-list
Ответить

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

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

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

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

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