def do_remove(self, subject):

        for fname, value in self.action_params:
            field, model, direct, m2m = subject._meta.get_field_by_name(fname)

            if not m2m:
                raise ValueError("{0} can be auto applied only on m2m".format(
                    self.get_action_display()
                ))
            getattr(subject, fname).remove(value)

        return subject
Parse data stored in on-disk sources list directory into a list of
dataset/ETHPy150Open ofri/Open-Knesset/suggestions/models.py/SuggestedAction.do_remove--crossover with--dataset/ETHPy150Open ros-infrastructure/rosdep/src/rosdep2/sources_list.py/parse_sources_list