- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
您好,我正在尝试做一个简单的应用程序,用户可以在其中制作新的鸡尾酒。因此我有两个具有多对多关系的模型
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)
在 View 中,如果是 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 = Ingredient.query.filter(Ingredient.id.in_(form.ingredients.data)).all()
c = Cocktail()
c.name = form.name.data
c.ingredients.append(cocktail_ingredients)
db.session.add(c)
db.session.commit()
return redirect(url_for('.index'))
return render_template('new.html', form=form)
我得到属性错误:
'list' object has no attribute '_sa_instance_state'
在试图创建空 Cocktail 的行中:
c = Cocktail()
我不知道问题出在哪里。
我检查了很多答案,通常与关系有关,所以我真的不知道我的代码有什么问题
这是表单类,虽然我认为这不是问题所在:
class CocktailForm(Form):
name = StringField('What is the coktail\'s name?', validators=[Required()])
ingredients = SelectMultipleField('Ingredients', coerce=int)
submit = SubmitField('Submit')
谢谢
最佳答案
我认为您的错误实际上并非来自 c = Cocktail()
行。
问题反而出在行上
c.ingredients.append(cocktail_ingredients)
cocktail_ingredients
是一个列表。您将一个列表附加到 c.ingredients
,而您应该只将 Ingredient
的实例附加到它。你想使用 .extend
代替:
c.ingredients.extend(cocktail_ingredients)
关于python - 创建新对象返回 AttributeError : 'list' object has no attribute '_sa_instance_state' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35762077/
我有一个包含超过 200 000 个 json 文件的文件夹。每个 json 对象都是一个 Tweet(推特)。将推文保存到数据库时出现错误 #sqlalchemy_insert.py def cre
我有一个包含谜题和类别的多对多关系数据库。当我第一次运行它时,一切都运行得非常好。所有表格都已创建并填充了内容。但是,当我第二次运行它以进一步填充数据库时,弹出以下错误。 AttributeError
我有一个包含谜题和类别的多对多关系数据库。当我第一次运行它时,一切都运行得非常好。所有表格都已创建并填充了内容。但是,当我第二次运行它以进一步填充数据库时,弹出以下错误。 AttributeError
我想评估链接到两个不同用户的值。我创建了一个不同的表来跟踪用户以前的体验和他们感兴趣的体验并将它们链接到用户。我有一个匹配函数,试图找到最相似的用户,但它给出了标题中列出的属性错误。 型号: clas
虽然他们的修复没有解决我的问题,但我已经看到其他有类似错误的问题。请注意,我使用的是 Flask-SQLAlchemy。 这是我的模型文件: class subjects(db.Model):
我收到以下错误,但我不确定如何修复它。我认为这与 is_bestfriend 关系有关。 File "/usr/local/lib/python2.7/dist-packages/flask/app.
我正在学习如何使用 SQLAlchemy。我正在尝试执行以下操作,但将标题和链接存储在两个单独的表中: temp = Submissions(title=u'Facebook Homepage', l
我正在使用 Flask 制作论坛模板。当我尝试使用表单在浏览器中创建一个新线程时,SQLAlchemy 会抛出一个 AttributeError。当我尝试使用 Forum-to-Thread 实现一对
我在我的应用程序中使用 Flask,并收到 AttributeError: '_Option' object has no attribute '_sa_instance_state' 错误。不知道它
您好,我正在尝试做一个简单的应用程序,用户可以在其中制作新的鸡尾酒。因此我有两个具有多对多关系的模型 from . import db assoc_table = db.Table('associat
问题:继承类不检查字符串,因为它作为None 传递。 检索方法的父类 (object.py) 旨在从数据库中检索对象(例如 ID 或用户/评估组合)。子类 (convenience.py) 旨在接受这
我正在尝试使用 SQLAlchemy + Python 向我的数据库中添加一个项目,但一直出现错误。 我的数据库_setup.py: class company(Base): __tablen
我在将值附加到关联表时遇到问题。从那以后我就没有解决过这个问题。不知道是感情的问题还是其他的问题。 这是我的关联表 item_tags_association_table = db.Table('it
我目前正在使用 Flask、Flask-SQLAlchemy 和 Flask-ReSTLess 为小型私有(private) AngularJS 应用程序提供 REST 路由。到目前为止,我已经能够有
我正在使用 Flask-ReSTLess、Flask-SQLAlchemy 和 Marshmallow 开发一个基本的 CRUD JSON REST API。 我在使用这种库组合时遇到问题,但只有当我
问题是尝试使用 Pyramid 上的 SQLAlchemy 从数据库中检索具有关系的对象。我想要的基本上是创建我需要从数据库中检索的对象,以完成网页所需的数据。 当我尝试访问 url/poll/{id
我是一名优秀的程序员,十分优秀!