所以,我希望我的问题是相关的,符合规则。你知道吗
我正在试用python微框架烧瓶;到目前为止,还不错。给定如下2个实体(一个Truc到多个Truc属性):
特鲁克:
from app import db
from sqlalchemy.orm import relationship
from sqlalchemy import Table, Column, Integer, ForeignKey
import TrucAttribute
class Truc(db.Model):
__tablename__ = 'app_truc'
id = db.Column(db.Integer, prymary_key = True)
owned_attributs_de_truc = db.relationship('TrucAttribute', backref="truc", cascade="all, delete-orphan", lazy="dynamic")
# Truc business methods ...
属性:
from app import db
from sqlalchemy.orm import relationship
from sqlalchemy import Table, Column, Integer, ForeignKey
import Truc
class TrucAttribute(db.Model):
id = db.Column(db.Integer, primary_key=True)
truc_id = db.Column(db.Integer, db.ForeignKey('app_truc.id'))
truc_owner = relationship("Truc", backref="attributs_de_truc")
@staticmethod #return a list usable for forms
def form_list():
attributs = TrucAttributes.query.all()
attributs_list = []
for attribut in attributs:
attributs_list.append((unicode(attribut.id), unicode(attribut.name))
return attributs_list
你知道吗表单.py地址:
from flask_wtf import Form
from wtforms import SelectField
from app.models.trucAttributes import TrucAttribute
class CreateTrucForm(Form):
truc_attribute = SelectField(u'Truc Attribute', choices=TrucAttribute.form_list())
代码来自创建.html地址:
Truc Attribute :
{{ form.truc_attribute() }}
以及控制器:
@app.route('/create/truc', methods=['GET', 'POST'])
def createTruc():
form = CreateTrucForm()
return render_template('create/CreateTruc.html', form=form)
如何使用Truc属性的select列表创建Truc创建表单?到目前为止,我只基于Flask Mega Tutorial创建了非常简单的表单。你知道吗
谢谢!你知道吗
你的静态方法应该很好。我唯一不确定的是这个解决方案的动态性。如果您最终从属性中添加或删除,它会更新吗?如果它只在启动时被查询,它可能不会。我做的有点不同,在我的生活中使用应用程序路径函数,然后调用render\u模板。那么就不需要定义choices=。。。在你们班上。你知道吗
但是静态方法应该可以很好地工作。我喜欢按字母顺序排列我的选择,并使用order\ U by来完成。你知道吗
另一个提示。如果希望表单返回相应的id整数,而不是用户选择的字符串,从而简化查询,可以在表单类中设置:
然后像我刚才描述的那样填充列表,当您在post请求之后解析表单时,应该会得到intergers。你知道吗
希望这有帮助。你知道吗
汉努
相关问题 更多 >
编程相关推荐