2016-02-12 66 views
-2

我正在尝试创建一个Flask应用程序,该应用程序将显示总统广告系列发送的电子邮件的数量和内容。我正在使用Flask-SQLAlchemy创建一个数据库来保存电子邮件。该models.py文件,我从工作看起来像这样:'_BoundDeclarativeMeta'对象不可迭代'Flask中的错误

from app import db 

class Politician(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    name = db.Column(db.String(64), index=True) 
    emails = db.relationship('Email', backref='author', lazy='dynamic') 

    def __repr__(self): 
     return '<Politician %s>' % self.name 

class Email(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    body = db.Column(db.String(10000)) 
    sender_id = db.Column(db.String(10000), db.ForeignKey('politician.name')) 
    def __repr__(self): 
     return '<E-mail %s>' % self.body 

数据库填充我想它是这样,所以这个问题是不存在的。

from flask import render_template, flash, redirect 
from app import app 
from .models import Politician, Email 

@app.route('/') 
@app.route('/index') 
def index(): 
    posts = [i.body for i in Email] 
    return render_template('index.html', 
          title='Home', 
          posts=posts) 

我可以从错误信息收集,当我指的是在Emailviews.py,我不应该使用的型号名称,而是:我从我的views.py文件,它看起来像这样得到_BoundDeclarativeMeta错误我不太清楚如何从数据库访问电子邮件。你们有没有任何建议?

回答

0

我是一个涂料 - 这是一个简单的修复。我通过将帖子列表理解改为posts = [i.body for i in Email.query.all()]来解决问题。