如何根据url参数设置flask_admin中关系字段的默认值?
假设我声明了以下模型:如何根据url参数设置flask_admin中关系字段的默认值?,flask,flask-admin,Flask,Flask Admin,假设我声明了以下模型: class Person(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50)) addresses = db.relationship('Address', backref='person', lazy='dynamic') class Address(db.Mo
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
addresses = db.relationship('Address', backref='person',
lazy='dynamic')
class Address(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(50))
person_id = db.Column(db.Integer, db.ForeignKey('person.id'))
我想创建一个视图,用户可以在其中查看Person对象并向其添加详细信息。我想要一个按钮来添加地址,类似于:
<a href='{{ url_for('address.create_view',person=get_value(model,'id'))}}' class='btn'>Add</a>
现在我的问题是如何将person_id设置为发送的值?理想情况下,我希望隐藏person下拉小部件,并将其转换为一个带有发送值的hiddenfield。但我会满足于从地址表中的人员下拉列表中选择正确的人员
谢谢。您可以向视图中添加额外的列,并为此列添加格式设置程序。例如:
class PersonView(ModelView):
column_list = ('id', 'name', 'action')
column_formatters = {'action': format_action}
# define the formatter
def format_action(view, context, model, name):
person_id = model.id
return "your html with person ID: %s" % person_id
请阅读您可以覆盖
ModelView的创建表单方法:
class PersonView(ModelView):
def create_form(self):
form = super(PersonView, self).create_form()
person_id = request.args.get('person_id')
if person_id and not form.person_id.data:
form.person_id.data = person_id
return form