code: def save(self, commit=True):
          
          if not self.instance.pk:
              # First, handle topic creation
              if 'topic_type' in self.cleaned_data and len(self.cleaned_data['topic_type']):
                  topic_type = self.cleaned_data['topic_type']
              else:
                  topic_type = Topic.TOPIC_POST
  
              topic = Topic(
                  forum=self.forum,
                  subject=self.cleaned_data['subject'],  # The topic's name is the post's name
                  type=topic_type,
                  status=Topic.TOPIC_UNLOCKED,
                  approved=self.perm_handler.can_post_without_approval(self.forum, self.user),
              )
              if not self.user.is_anonymous:
                  topic.poster = self.user
              self.topic = topic
              if commit:
                  topic.save()
          else:
              if 'topic_type' in self.cleaned_data and len(self.cleaned_data['topic_type']):
                  if self.instance.topic.type != self.cleaned_data['topic_type']:
                      self.instance.topic.type = self.cleaned_data['topic_type']
                      self.instance.topic._simple_save()
  
          return super().save(commit)
docs: Saves the instance.