标签添加及删除问题
来源:7-4 .标签管理3
慕无忌1371140
2017-08-10
当添加新标签时可以成功,但添加成功后再次点击添加则报错
而且此时点击tag_list页,该页也未更新。
只有重启服务器tag_list页才显示新加的标签,此时再次添加已有标签则可正常flash出添加失败的消息。
点击tag_list页的删除时报错(即使重启服务器也报错):
如下是view.py中有关标签的代码
# 添加标签 @admin.route('/tag/add/', methods=['GET', 'POST']) @admin_login_req def tag_add(): form = TagForm() if form.validate_on_submit(): data = form.data tag = Tag.query.filter_by(name=data['name']).count() # 检查标签是否已经存在(标签具有唯一性) if tag == 1: # 若存在,则提示并返回添加标签页 flash('名称已经存在!', 'err'), return redirect(url_for('admin.tag_add')) tag = Tag( # 若不存在,则进行入库保存 name=data['name'] ) db.session.add(tag) db.session.commit() flash('添加标签成功!', 'ok') redirect(url_for('admin.tag_add')) return render_template('admin/tag_add.html', form=form) # 标签列表:查询;分页显示 @admin.route('/tag/list/<int:page>/',methods=['GET']) @admin_login_req def tag_list(page=None): if page is None: page = 1 page_data = Tag.query.order_by( Tag.addtime.desc() ).paginate(page=page, per_page=10) return render_template('admin/tag_list.html', page_data=page_data) # 标签删除 @admin.route('/tag/del/<int:id>/',methods=['GET']) @admin_login_req def tag_del(id=None): tag = Tag.query.filter_by(id=id).first_or_404() db.session.delete(tag) db.session.commit() flash('添加标签成功','ok') return redirect(url_for('admin.tag_list', page=1))
写回答
2回答
-
同学,你好,tag标签是不是重复添加了,name字段设置了唯一性!
# 标签 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.now) # 添加时间 movies = db.relationship("Movie", backref='tag') # 电影外键关系关联 def __repr__(self): return "<Tag %r>" % self.name
0152017-08-11 -
慕无忌1371140
提问者
2017-08-10
admin_page.html
forms.py
tag_add.html
tag_list.html
views.py
00
相似问题