Python 同一类的两个表格在同一页上,以两种形式显示

Python 同一类的两个表格在同一页上,以两种形式显示,python,flask,flask-wtforms,Python,Flask,Flask Wtforms,在我的网站上,我有一个包含许多活动的模型实验。我有一个观点,人们可以在实验中添加或删除活动 我展示了一个包含活动的表,这些活动是本实验的一部分,而活动表不是本实验的一部分。用户可以检查要添加或删除的活动,并使用表下的“提交”按钮 但是,当我更新一个表单上的选项列表时,另一个表单上的选项列表反映了这一点。我做错什么了吗 对于在实验中添加和删除活动,我使用相同的表单 class MultiCheckboxField(SelectMultipleField): widget = ListWid

在我的网站上,我有一个包含许多活动的模型实验。我有一个观点,人们可以在实验中添加或删除活动

我展示了一个包含活动的表,这些活动是本实验的一部分,而活动表不是本实验的一部分。用户可以检查要添加或删除的活动,并使用表下的“提交”按钮

但是,当我更新一个表单上的选项列表时,另一个表单上的选项列表反映了这一点。我做错什么了吗

对于在实验中添加和删除活动,我使用相同的表单

class MultiCheckboxField(SelectMultipleField):
    widget = ListWidget(prefix_label=False)
    option_widget = CheckboxInput()

class ActivityListForm(Form):
    activities = MultiCheckboxField(validators=[DataRequired()], choices=[])
    submit = SubmitField("Submit")

    def populate_activities(self, activities_set):
        activities_mapping = {}
        for activity in activities_set:
            activities_mapping[str(activity.id)] = activity
            choice_tuple = (str(activity.id), activity.question)
            self.activities.choices.append(choice_tuple)
        return activities_mapping
以下是我的看法:

def settings_experiment(exp_id):
    experiment = Experiment.query.get(exp_id)

    remove_activities_form = ActivityListForm(prefix="remove")
    add_activities_form = ActivityListForm(prefix="add")

    remove_activities_mapping = remove_activities_form.populate_activities(
        experiment.activities)

    add_activities_mapping = add_activities_form.populate_activities(
        Activity.query.\
            filter(not_(Activity.experiments.any(id=experiment.id))).all())


    return render_template("experiments/settings_experiment.html",
                           experiment=experiment,
                           update_experiment_form=update_experiment_form,
                           remove_activities_form=remove_activities_form,
                           add_activities_form=add_activities_form,
                           add_activities_mapping=add_activities_mapping,
                           remove_activities_mapping=remove_activities_mapping)
虽然
删除活动表单
添加活动表单
将其选项分别设置为不同的列表,但它们最终都包含两个选项列表的并集,这会打乱我的模板呈现。有没有办法把它们分开,还是我被搞砸了?

上述讨论中的解决方案。

上述讨论中的解决方案