У меня есть рецепты, у которого есть список ингридиентов.
Каждый ингридиент принадлежит какой-то категории ингридиентов.
from app import db
followers = db.Table('followers',
db.Column('follower_id', db.Integer, db.ForeignKey('recipes.id')),
db.Column('followed_id', db.Integer, db.ForeignKey('product.id'))
)
class Category(db.Model):
__tablename__ = 'category'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(250), nullable=False)
def __init__(self, name):
self.name = name
def __repr__(self):
return "Category name %s" % (self.name)
class Product(db.Model):
__tablename__ = 'product'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(250), nullable=False)
filename = db.Column(db.String(250), nullable=True)
category_id = db.Column(db.Integer, db.ForeignKey('category.id'))
category = db.relationship(Category)
def __init__(self, name, filename, category):
self.name = name
self.filename = filename
self.category = category
def __repr__(self):
return "Product %s, img %s" % (self.name, self.filename)
class Recipe(db.Model):
__tablename__ = 'recipes'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(250), nullable=False)
image = db.Column(db.String(250), nullable=True)
followed = db.relationship('Product',
secondary=followers,
backref=db.backref('followers', lazy='dynamic'),
lazy='dynamic')
def follow(self, product):
if not self.is_following(product):
self.followed.append(product)
return self
def unfollow(self, product):
if self.is_following(product):
self.followed.remove(product)
return self
def is_following(self, product):
return self.followed.filter(followers.c.followed_id == product.id).count()
def followed_products(self):
return Product.query.join(followers, (followers.c.followed_id == Product.id)).filter(followers.c.follower_id == self.id)
Я хочу хранить еще строку или число, обозначающую количество ингридиента.
Помогите разобраться как это впилить.
Заранее спасибо