您好,匿名用户
随意问技术百科期待您的加入

Flask-WTF在编辑一个记录的时候,下拉菜单如何同步?

0 投票

Flask-WTF在编辑一个记录的时候,遇到下拉菜单如何自动跳到数据默认的选项上?

现在遇到一个问题就是编辑一个记录的时候,从数据库里读出来的数据在前台不能同步。QuerySelectField总是显示第一条记录.也就是说。并没有根据数据库的值自动同步选项。

Model:
class Article(db.Model):
    id=db.Column(db.Integer,primary_key=True)
    node=db.Column(db.Integer,db.ForeignKey("node.id"), nullable=False, index=True, )
    title=db.Column(db.Unicode(200))
    content=db.Column(db.Text)
    created = db.Column(db.DateTime, default=datetime.now)
    _tags=db.Column(db.Unicode(200),index=True)
    hits = db.Column(db.Integer, default=1)


class Node(db.Model):
    id=db.Column(db.Integer,primary_key=True)
    name=db.Column(db.String(200),nullable=False)
    slug = db.Column(db.String(200), nullable=False, index=True, unique=True)


==============
Form的定义:
class ArticleForm(Form):
    title=TextField("title")
    content=TextAreaField("content")
    node=QuerySelectField("node",query_factory=lambda :Node.query.all(),get_pk=lambda x:x.id,get_label=lambda x:x.name)
    tags = TextField("Tags")
    submit = SubmitField(u"提交")

==============
view:
def editarticle(article_id):
    art=Article.query.filter(Article.id==article_id).first_or_404()
    form=ArticleForm(obj=art)
    if form.validate_on_submit():
        form.populate_obj(art)
        art.node=form.node.data.id
        db.session.add(art)
        db.session.commit()
        return redirect(url_for(".listarticle"))
    return render_template("/admin/create_article.html",form=form)

请问我应该如何做,才能在编辑一个ariticle的时候,Node这个字段的下拉菜单自动显示artilce数据库里的相应的情况?

用户头像 提问 2012年 12月1日 @ Hecarim 上等兵 (361 威望)
分享到:

1个回答

0 投票

看起来应该是前端方面的问题。

解决方法可以是下拉的时候用ajax向服务器请求同步的数据,然后jquery改变html,或者貌似也可以用angular.js这种东西,反正纯粹的靠修改后台我是没看到有什么解决办法

用户头像 回复 2012年 12月1日 @ Kog'Maw 上等兵 (212 威望)
提一个问题:

相关问题

+2 投票
1 回复 55 阅读
0 投票
0 回复 51 阅读
0 投票
1 回复 46 阅读
0 投票
1 回复 27 阅读
0 投票
1 回复 74 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...