title: Pytest scope='module' fixture not delete model instance after testing module
body: <p>I create the message instance in a fixture with scope='module', right in the test file. But when the test reaches another module, this message instance still exists in the database.</p>
  <p><strong>in .../apps/dialogs/test/api/test_message.py</strong></p>
  <pre><code>@pytest.fixture(scope='module')
  def message_by_auth_user(django_db_setup, django_db_blocker,
                           message_factory: type,
                           user_factory: type,
                           user_with_auth: User) -&gt; Message:
      &quot;&quot;&quot;Return message by auth user.&quot;&quot;&quot;
      with django_db_blocker.unblock():
          message = message_factory(written_by=user_with_auth)  # Message object (1)
          message_text = message.message  # 'text_message_№_1'
          return message
  </code></pre>
  <p><strong>in .../apps/users/test/api/test_users.py</strong></p>
  <pre><code>
  @pytest.mark.django_db
  def test_get_users_view_with_filter(bool_value: bool,
                                      user_count_change: int,
                                      filter_pattern: str,
                                      api_auth_client: APIClient,
                                      user_with_auth: User,
                                      user_factory: type):
      message_count = Message.objects.all().count()  # 1
      message = Message.objects.first()  # Message object (1)
      message_text = message.message # 'text_message_№_1'
  </code></pre>
  <p><strong>UPDATE</strong></p>
  <p>After I replaced the 'return' with a 'yield', and after the 'yield' I manually deleted the object, everything works correctly. But shouldn't the test do it automatically, as it does in my other fixtures? For example, if scope = 'function' then the test automatically deletes the object (after each test), without any 'yield'</p>
  <p><strong>If the message instance is not manually deleted, it will exist throughout the entire session, even if scope='module'. Why is this happening???</strong></p>
  <pre><code>@pytest.fixture(scope='module')
  def message_by_auth_user(django_db_setup, django_db_blocker,
                           message_factory: type,
                           user_factory: type,
                           user_with_auth: User) -&gt; Message:
      &quot;&quot;&quot;Return message by auth user.&quot;&quot;&quot;
      with django_db_blocker.unblock():
          message = message_factory(written_by=user_with_auth)
          yield message
          message.delete()  # This code is executed when fixture run teardown, after testing current module
  </code></pre>