i found the answer: if i Explicitly define the value of "c", like this, it will update.
parent.children = [Child(a=123, b="b", c=None), ...]
but if i just use the defualt none value of "c", it will not update, the original value will remain unchanged.
parent.children = [Child(a=123, b="b"), ...]