擅长:python、mysql、java
<p>找到了对我帮助很大的<a href="https://gist.github.com/kirang89/22d111737af0fca251e3" rel="nofollow noreferrer">this gist</a>。我添加了一个自定义的<code>__setitem__</code>,以便能够更改列表中的一个项,<code>__delitem__</code>以删除一个:</p>
<pre><code>from sqlalchemy.ext.mutable import Mutable
from sqlalchemy.dialects.postgresql import ARRAY
class MutableList(Mutable, list):
def __setitem__(self, key, value):
list.__setitem__(self, key, value)
self.changed()
def __delitem__(self, key):
list.__delitem__(self, key)
self.changed()
def append(self, value):
list.append(self, value)
self.changed()
def pop(self, index=0):
value = list.pop(self, index)
self.changed()
return value
@classmethod
def coerce(cls, key, value):
if not isinstance(value, MutableList):
if isinstance(value, list):
return MutableList(value)
return Mutable.coerce(key, value)
else:
return value
</code></pre>
<p>然后在您的模型中:</p>
^{pr2}$