小编Mar*_* B.的帖子

为什么 SQLAlchemy InstrumentedList 的顺序不持久?

快速摘要:我想要在 SQLAlchemy 中拥有一个有序的地址列表。但当我提交时,我的列表顺序会发生变化。为什么会发生这种情况以及如何改变它?

长解释:

  1. 我从附加到用户对象的地址列表开始。
  2. 然后我用新地址替换“地址”列表的第一个元素。
  3. 然后我打印地址列表......到目前为止,顺序是我所期望的。
  4. 最后我承诺了。提交后,我进行了查询,但地址列表的顺序已更改。

那么这是否只是我不理解的关于数据库的一般问题?或者 SQLAlchemy InstrumentedList 的行为不像实际列表?我以为我可以改变一段关系中元素的顺序,但我不知道如何改变。


from sqlalchemy import Column, Integer, String
from sqlalchemy import create_engine
from sqlalchemy import ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()
Session = sessionmaker()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    fullname = Column(String(50))
    password = Column(String(12))

    addresses = relationship("Address", back_populates="user")

    def __repr__(self):
        return "<User(name='%s', fullname='%s', password='%s')>" % (
                                self.name, self.fullname, self.password)

class Address(Base):
    __tablename__ …
Run Code Online (Sandbox Code Playgroud)

python database sqlalchemy list

5
推荐指数
1
解决办法
4793
查看次数

标签 统计

database ×1

list ×1

python ×1

sqlalchemy ×1