code: def save_model(self, request, obj, form, change):
          
          obj.save()
  
          if notification:
              # Getting the appropriate notice labels for the sender and recipients.
              if obj.parent_msg is None:
                  sender_label = 'messages_sent'
                  recipients_label = 'messages_received'
              else:
                  sender_label = 'messages_replied'
                  recipients_label = 'messages_reply_received'
  
              # Notification for the sender.
              notification.send([obj.sender], sender_label, {'message': obj,})
  
          if form.cleaned_data['group'] == 'all':
              # send to all users
              recipients = User.objects.exclude(pk=obj.recipient.pk)
          else:
              # send to a group of users
              recipients = []
              group = form.cleaned_data['group']
              if group:
                  group = Group.objects.get(pk=group)
                  recipients.extend(
                      list(group.user_set.exclude(pk=obj.recipient.pk)))
          # create messages for all found recipients
          for user in recipients:
              obj.pk = None
              obj.recipient = user
              obj.save()
  
              if notification:
                  # Notification for the recipient.
                  notification.send([user], recipients_label, {'message' : obj,})
docs: Saves the message for the recipient and looks in the form instance
          for other possible recipients. Prevents duplication by excludin the
          original recipient from the list of optional recipients.
  
          When changing an existing message and choosing optional recipients,
          the message is effectively resent to those users.