<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def save(self):
 """ Attempts to move the nodes using the selected target and position. If an invalid move is attempted, the related error message will be added to the form's non-field errors and the error will be re-raised. Callers should attempt to catch ``InvalidMove`` to redisplay the form with the error, should it occur. """

        self.success_count = 0
        for node in self.get_selected_nodes():
            self.move_node(node, self.cleaned_data['target_node'])