How to move a model between two Django apps (Django 1.7)

So about a year ago I started a project and like all new developers I didn't really focus too much on the structure, however now I am further along with Django it has started to appear that my project layout mainly my models are horrible in structure.

I have models mainly held in a single app and really most of these models should be in their own individual apps, I did try and resolve this and move them with south however I found it tricky and really difficult due to foreign keys ect.

However due to Django 1.7 and built in support for migrations is there a better way to do this now?

I am removing the old answer as may result in data loss. As ozan mentioned, we can create 2 migrations one in each app.

First migration to remove model from 1st app.

    $ python makemigrations old_app --empty

Edit migration file to include these operations.

    class Migration(migrations.Migration):

        database_operations = [migrations.AlterModelTable('TheModel', 'newapp_themodel')]

        state_operations = [migrations.DeleteModel('TheModel')]

        operations = [

Second migration which depends on first migration and create the new table in 2nd app. After moving model code to 2nd app

    $ python makemigrations new_app

and edit migration file to something like this.

    class Migration(migrations.Migration):

        dependencies = [
            ('old_app', 'above_migration')

        state_operations = [
                    ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                    'db_table': 'newapp_themodel',

        operations = [