相关疑难解决方法(0)

如果字段选项列表发生更改,请停止Django创建迁移

我有一个名为"foocore"的django核心应用程序.

有几个可选的类似插件的应用程序.例如"superfoo".

在我的例子中,每个插件都在CharField模型中添加了一个新选项,该模型属于"foocore".

如果选择列表发生更改,Django迁移会检测更改.

我认为这不是必要的.至少有一位其他开发者认为相同:

https://code.djangoproject.com/ticket/22837

class ActivePlugin(models.Model):
    plugin_name = models.CharField(max_length=32, choices=get_active_plugins())
Run Code Online (Sandbox Code Playgroud)

获取选择的代码:

class get_active_plugins(object):
    def __iter__(self):
        for item in ....:
            yield item
Run Code Online (Sandbox Code Playgroud)

核心"foocore"在几个项目中使用,每个安装都有一组不同的插件.Django试图创建无用的迁移....

有办法解决这个问题吗?

python django database-migration

16
推荐指数
3
解决办法
1977
查看次数

Django 迁移改变选择值

以前已将一个字段添加到我的 MySQL 表之一中:

# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2017-09-14 00:49
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('my_app', '0102_previous_migrations'),
    ]

    operations = [
        migrations.AddField(
            model_name='my_client',
            name='my_team',
            field=models.CharField(choices=[('Unassigned', 'Unassigned'), ('ACT', 'ACT'), ('Korea', 'Korea'), ('National', 'National')], default='Unassigned', max_length=255, verbose_name='My Team'),
        ),
    ]
Run Code Online (Sandbox Code Playgroud)

因此用户可以在我的 UI 中选择上述选项,并将保存到表 my_client 中:

  • 未分配
  • 行为
  • 朝鲜
  • 国民

更改已部署,现在像我这样的初学者想要更改,即删除韩国并添加 2 个新选项:NSW 和 SA

我该怎么办?我需要再次迁移还是只需要更改模型中的这些选择?

我现在像这样在我的模型中使用它:

class Client(MyAppModel):
    TEAM_CHOICES = (
        ('Unassigned', 'Unassigned'),
        ('ACT', 'ACT'),
        ('Korea', 'Korea'), …
Run Code Online (Sandbox Code Playgroud)

mysql django

6
推荐指数
1
解决办法
3843
查看次数

标签 统计

django ×2

database-migration ×1

mysql ×1

python ×1