请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

movie没有tag元素

AttributeError: 'Movie' object has no attribute 'tag'

报错提示没有tag属性。

之后我把movie_list.htl里面的 {{v.tag.name}}删除后就不报错

电影列表视图函数如下

#电影列表
@admin.route('/movie/list/<int:page>/',methods=['GET'])
@admin_login_req
def movie_list(page=None):
   if page is None:
       page = 1
   page_data = Movie.query.join(Tag).filter(
       Tag.id == Movie.tag_id
   ).order_by(
       Movie.addtime.desc()
   ).paginate(page=page, per_page=10)
   return render_template('admin/movie_list.html', page_data=page_data)

正在回答

2回答

亲,你试一下大写{{ v.Tag.name }}

0 回复 有任何疑惑可以回复我~
  • 提问者 慕哥3993229 #1
    不行
    jinja2.exceptions.UndefinedError: 'app.models.Movie object' has no attribute 'Tag'
    回复 有任何疑惑可以回复我~ 2017-08-11 16:25:35
  • rustgopy 回复 提问者 慕哥3993229 #2
    亲,你把models.py中movie、tag的模型,以及views.py中movie_list的截图给老师下,还有html的截图,这几个!
    回复 有任何疑惑可以回复我~ 2017-08-11 16:28:29
  • 提问者 慕哥3993229 回复 rustgopy #3
    发了。
    回复 有任何疑惑可以回复我~ 2017-08-11 16:37:40
提问者 慕哥3993229 2017-08-11 16:37:09

###models.py

# 标签
class Tag(db.Model):
   __tablename__ = 'tag'
   id = db.Column(db.Integer, primary_key=True)
   name = db.Column(db.String(100), unique=True)
   addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow)
   movies = db.relationship('Movie', backref='tag')

   def __repr__(self):
       return '<Tag:%r>' % self.name


# 电影
class Movie(db.Model):
   __tabalename__ = 'movie'
   id = db.Column(db.Integer, primary_key=True)
   title = db.Column(db.String(255), unique=True)
   url = db.Column(db.String(255), unique=True)
   info = db.Column(db.Text)
   logo = db.Column(db.String(255), unique=True)
   star = db.Column(db.SmallInteger)
   playnum = db.Column(db.BigInteger)
   commentnum = db.Column(db.BigInteger)
   tag_id = db.Column(db.Integer, db.ForeignKey('tag.id'))
   area = db.Column(db.String(255))
   releasetime = db.Column(db.Date)
   length = db.Column(db.String(100))
   addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow)
   comments = db.relationship('Comment', backref='movie')
   moviecols = db.relationship('MovieCol', backref='movie')

   def __repr__(self):
       return '<Movie:%r>' % self.title

###admin/views.py

#电影列表
@admin.route('/movie/list/<int:page>/',methods=['GET'])
@admin_login_req
def movie_list(page=None):
   if page is None:
       page = 1
   page_data = Movie.query.join(Tag).filter(
       Tag.id == Movie.tag_id
   ).order_by(
       Movie.addtime.desc()
   ).paginate(page=page, per_page=10)
   return render_template('admin/movie_list.html', page_data=page_data)

###html

{% for v in page_data.items %}
<tr>
   <td>{{ v.id }}</td>
   <td>{{ v.title }}</td>
   <td>{{ v.length }}分钟</td>
   <td>{{ v.Tag.name }}</td>
   <td>{{ v.area }}</td>
   <td>{{ v.star }}</td>
   <td>{{ v.playnum }}</td>
   <td>{{ v.commentnum }}</td>
   <td>{{v.addtime}}</td>
   <td>
       <a class="label label-success">编辑</a>
       &nbsp;
       <a class="label label-danger">删除</a>
   </td>
</tr>
{% endfor %}

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信