我正在使用多层嵌套模型。
例如,我有“测试”->“部分”->“问题”->“选择”
其中->表示一对多关系。
我希望能够使用某种超链接转到内联模型的编辑页面。
这是链接(理想情况下)的位置的示例图像:
突出显示的区域是我想要超链接的地方。
当前有两个问题:
如何在flask admin中进行操作?
答案 0 :(得分:0)
您可以像这样将hybrid_property
添加到模型:
from sqlalchemy.ext.hybrid import hybrid_property
class Section(db.Model):
@hybrid_property
def link(self):
# check id for new model (not show link)
if self.id:
return '/section/edit/?id={0}'.format(self.id)
@link.setter
def link(self, value):
pass
和 inline_models 如下:
inline_models = (
(Section, {
'form_extra_fields': {
'link': LinkField(label=''),
},
'form_rules': ('link',)
}),
)
其中LinkField
是自定义wtf字段,例如:
from wtforms import TextField
from wtforms.widgets import HTMLString
class LinkWidget(object):
def __call__(self, field, **kwargs):
html = ''
if field.object_data:
html = '<a href="{0}" class="alert-link">Go to record</a>'.format(field.object_data)
return HTMLString(html)
class LinkField(TextField):
widget = LinkWidget()
屏幕: enter image description here
此外,您可以覆盖 inline_list_base.html ,但不建议这样做。