当前位置: 首页 > 面试题库 >

如何在两个Django应用之间移动模型(Django 1.7)

朱雅惠
2023-03-14
问题内容

因此,大约一年前,我开始了一个项目,像所有新开发人员一样,我并没有真正专注于结构,但是现在与Django一起,我开始觉得我的项目布局主要是我的模型在结构上很糟糕。

我的模型主要保存在单个应用程序中,实际上这些模型中的大多数应该放在自己的单个应用程序中,我确实尝试解决了此问题并将其向南移动,但是由于外键等原因,我发现它很棘手,而且确实很困难。

但是由于Django 1.7并内置了对迁移的支持,现在有更好的方法吗?


问题答案:

我正在删除旧答案,因为这可能会导致数据丢失。如ozan所述,我们可以在每个应用中创建2个迁移。

第一次迁移以从第一个应用中删除模型。

$ python manage.py makemigrations old_app --empty

编辑迁移文件以包括这些操作。

class Migration(migrations.Migration):

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

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

    operations = [
      migrations.SeparateDatabaseAndState(
        database_operations=database_operations,
        state_operations=state_operations)
    ]

第二次迁移取决于第一次迁移,并在第二个应用程序中创建新表。将模型代码移至第二个应用程序后

$ python manage.py makemigrations new_app 

然后将迁移文件编辑为类似的内容。

class Migration(migrations.Migration):

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

    state_operations = [
        migrations.CreateModel(
            name='TheModel',
            fields=[
                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
            ],
            options={
                'db_table': 'newapp_themodel',
            },
            bases=(models.Model,),
        )
    ]

    operations = [
        migrations.SeparateDatabaseAndState(state_operations=state_operations)
    ]


 类似资料:
  • 我有一个立方体,我只在x轴上的3个点(浮动位置)之间移动它。所以立方体将从0.00开始,我按下右键,它在x轴上向右移动到2.0f。然后我按下左键,它会回到0.0f。然后我再次按下左键,它会移动到-2.0f。按下右键应该会将其返回到0.0f,但会超出0。误差的大小取决于我移动的速度。 如果我从左键开始,结果也是一样的。 帧时间是

  • 问题内容: 我有一个带有四个模型的django应用。我现在意识到这些模型之一应该在单独的应用程序中。我确实已经安装了South来进行迁移,但是我认为这不能自动解决。如何将其中一种模型从旧应用程序迁移到新模型? 另外,请记住,我将需要将此过程重复进行,以便可以迁移生产系统等。 问题答案: 假设我们有两个应用程序:通用和专用: 现在,我们要将模型common.models.cat移至特定的应用程序(精

  • 大家好,我是微服务的架构新手,所以我有一个miscroservice,每个实体都链接到“用户”实体,但问题是“用户”实体在另一个微服务中,有什么解决方案吗? 如果我在同一个微服务中没有两个实体,我不知道在哪里使用@onetomany关系) 我无法将两个微服务组合在一起。 领域模型层呢?使用另一个微服务的数据是不是最好的解决方案? 提前感谢。

  • 我有一个Django 1.10内置的网站。该网站有3种不同的应用程序:团队、成员和新闻。 第一个叫做团队的应用程序有一个叫做团队的模型。 这是Team/models.py: 第二个应用称为成员,它有一个名为成员的模型。 这是Member/models.py: 我想要的是在成员档案中包含团队的名称,所以我知道它应该是这样的: 但是我不知道在括号里放什么,也不知道如何将团队的模型导入到成员的模型中。我

  • 我正在使用jquerymobile/jquery/js开发网页。我想将数据从一个页面传递到另一个页面。 使用jquerymobile中的多页模板,我可以实现这一点,但可以帮助我使用单页模板。请我不想使用全局变量或cookie或本地存储或使用url。试图通过使用Jquery.data但无法实现此目的。请发布一个示例。 我有两页。在第二页连接“pagebeforeshow”事件时,我没有得到b1按钮对

  • 对于我的一个项目,我目前想构建一个Ionic应用程序,为iOS和Android平台编写一次代码。我正在寻找一种方法来测量两个移动设备之间的距离。一个设备应放置在特定位置,另一个设备应在其进入第一个设备的范围(或更具体地说,第一个设备所在的位置)时被检测到。 位于特定位置的设备1将连接到internet,访问该位置的设备2也是如此。 我已经读过很多不同的实现,但大多数时候它需要Android或iOS