我有一个名为Job的模型类和一个称为Node的模型类。一个作业可以有多个源或目标类型的节点。
我有一个SourceNodeInlineModelForm和一个DestinationNodeInlineModelForm,它们都基于模型类Node。如果我在inline_models中使用其中一个,那么它们的工作效果与预期一致,但当我同时使用这两个时,只显示inline_mmodels中最后指定的一个。在下面,仅显示DestinationNodeInlineModelForm。
class Job(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Unicode(64)) class Node(db.Model): id = db.Column(db.Integer, primary_key=True) type = db.Column(db.String(16)) hostname = db.Column(db.Unicode(128)) port = db.Column(db.Integer) job_id = db.Column(db.Integer, db.ForeignKey(Job.id)) job = db.relation(Job, backref='jobs') class CustomInlineFieldListWidget(RenderTemplateWidget): def __init__(self): super(CustomInlineFieldListWidget, self).__init__('field_list.html') class CustomInlineModelFormList(InlineModelFormList): widget = CustomInlineFieldListWidget() def display_row_controls(self, field): return False class CustomInlineModelConverter(InlineModelConverter): inline_field_list_type = CustomInlineModelFormList class SourceNodeInlineModelForm(InlineFormAdmin): form_label = 'Source' form_extra_fields = { 'type': HiddenField('type', default='source') } def __init__(self): return super(SourceNodeInlineModelForm, self).__init__(Node) class DestinationNodeInlineModelForm(InlineFormAdmin): form_label = 'Destination' form_extra_fields = { 'type': HiddenField('type', default='destination') } def __init__(self): return super(DestinationNodeInlineModelForm, self).__init__(Node) class JobAdmin(ModelView): inline_model_form_converter = CustomInlineModelConverter inline_models = (SourceNodeInlineModelForm(), DestinationNodeInlineModelForm()) def __init__(self): super(JobAdmin, self).__init__(Job, db.session, name='Jobs')
只渲染inline_models中的最后一个条目。我希望两者都能呈现出来。