所以我有两个模型:文章和标签,以及正确设置的 m2m 关系。
我有一条“文章/标签/”类型的路线,我想仅显示与该标签相关的那些文章
我已经解决了这个问题,但我正在寻找一个更优雅的解决方案,包括分页,但我无法paginate在文章列表上使用,因为它不是queryset
我需要链接到某个标签的所有文章的查询集。我尝试了order_by很多不同的方法,但都失败了。我无法在文档中找到有用的东西,有什么想法吗?
嗨,我正在尝试做一个简单的应用程序,使用户能够创建新的鸡尾酒。因此,我有两个具有多对多关系的模型
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)