Rumah  >  Soal Jawab  >  teks badan

python - Bagaimana untuk menomborkan hasil carian flask sqlalchemy many-to-many?

Saya menggunakan kelalang untuk membuat blog sambil mempelajari kelalang (Artikel boleh mempunyai berbilang tag, dan satu teg boleh sepadan dengan berbilang artikel, jadi saya mengikuti hubungan banyak ke banyak di sini), yang disertakan dengan kaedah penomboran. hanya boleh menyokong objek flask_sqlalchemy.BaseQuery untuk penomboran Walau bagaimanapun, saya menggunakan teg dalam hubungan berbilang pasangan untuk mencari semua objek artikel yang dikaitkan dengan teg, jadi paging tidak boleh dilakukan. . . Apakah yang perlu saya lakukan jika saya ingin membuat penomboran sekarang?

Perlukah saya menulis penomboran sendiri sekarang? Saya harap beberapa pakar yang bermaksud baik boleh memberi saya nasihat tentang idea umum itu.
Contoh:

#多对多关系中的两个表之间的一个关联表
tags = db.Table('post_tags',
    db.Column('post_id',db.Integer,db.ForeignKey('posts.id')),
    db.Column('tag_id',db.Integer,db.ForeignKey('tag.id'))
)

# 发表文章模型
class Post(db.Model):
    __tablename__ = 'posts'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(255))
    body = db.Column(db.Text())
    body_html = db.Column(db.Text())
    created = db.Column(db.DateTime)

    author_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    comments = db.relationship('Comment', backref='post',lazy='dynamic')  # 关联评论
    tags = db.relationship('Tag',secondary=tags,backref=db.backref('posts',lazy='dynamic'))#多对多关联

    def __repr__(self):
        return "<post_id={0}>".format(self.id)
        
#标签
class Tag(db.Model):
    __tablename__ = 'tag'
    id = db.Column(db.Integer,primary_key=True)
    title = db.Column(db.String(255))\


    def __repr__(self):
        return "{0}".format(self.title)

三叔三叔2686 hari yang lalu1338

membalas semua(1)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-06-12 09:24:47

    Saya kata penomboran bebas tekanan Anda pasti boleh menggunakan penomboran

    >>> r=Role.query.get(1)
    >>> r
    manager
    >>> r.users
    <sqlalchemy.orm.dynamic.AppenderBaseQuery object at 0x7f5ae257a510>
    >>> r.users.paginate(1, 20, None)                
    <flask_sqlalchemy.Pagination object at 0x7f5ae1829150>

    Pengguna dan Peranan adalah banyak kepada ramai, dan saya tidak menemui masalah yang disebut oleh poster asal.

    balas
    0
  • Batalbalas