小编E R*_*uez的帖子

Flask SQLAlchemy 对关系中的对象进行分页

所以我有两个模型:文章和标签,以及正确设置的 m2m 关系。

我有一条“文章/标签/”类型的路线,我想仅显示与该标签相关的那些文章

我已经解决了这个问题,但我正在寻找一个更优雅的解决方案,包括分页,但我无法paginate在文章列表上使用,因为它不是queryset

我需要链接到某个标签的所有文章的查询集。我尝试了order_by很多不同的方法,但都失败了。我无法在文档中找到有用的东西,有什么想法吗?

python pagination sqlalchemy

6
推荐指数
1
解决办法
1887
查看次数

创建一个新对象将返回AttributeError:'list'对象没有属性'_sa_instance_state'

嗨,我正在尝试做一个简单的应用程序,使用户能够创建新的鸡尾酒。因此,我有两个具有多对多关系的模型

from . import db
assoc_table = db.Table('association',
   db.Column('ingredient_id', db.Integer, db.ForeignKey('ingredients.id')),
   db.Column('cocktail_id', db.Integer, db.ForeignKey('cocktails.id'))
)


class Ingredient(db.Model):

    __tablename__ = 'ingredients'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), unique=True)
    cost_price = db.Column(db.Float, default=0.0)
    cocktails = db.relationship('Cocktail',
                                secondary=assoc_table,
                                backref=db.backref('ingredients'),
                                lazy='dynamic')


class Cocktail(db.Model):

    __tablename__ = 'cocktails'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), unique=True)
    serv_percentage = 0.25
    sell_price = db.Column(db.Float)
Run Code Online (Sandbox Code Playgroud)

在视图中,如果它是GET请求,则发送表单。如果是POST,我尝试创建Cocktail对象,然后将其保存在数据库中:

@main.route('/new', methods=['GET', 'POST'])
def new():
    form = CocktailForm()
    form.ingredients.choices = [(i.id, i.name) for i in Ingredient.query.all()]
    if form.validate_on_submit():
        cocktail_name = form.name.data
        cocktail_ingredients …
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy

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

标签 统计

python ×2

flask ×1

flask-sqlalchemy ×1

pagination ×1

sqlalchemy ×1