Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django数据迁移-通过get_model()类变量不可用_Django_Orm_Django Migrations - Fatal编程技术网

django数据迁移-通过get_model()类变量不可用

django数据迁移-通过get_model()类变量不可用,django,orm,django-migrations,Django,Orm,Django Migrations,我正在尝试使用以下迁移文件,通过Django数据迁移更新一些数据库记录: from django.apps import apps from django.db import IntegrityError, migrations def exclude_pending_drivers(apps, schema_edition): Driver = apps.get_model("team", "Driver") pending_drive

我正在尝试使用以下迁移文件,通过Django数据迁移更新一些数据库记录:

from django.apps import apps
from django.db import IntegrityError, migrations

def exclude_pending_drivers(apps, schema_edition):
    Driver = apps.get_model("team", "Driver")
    pending_drivers = Driver.objects.filter(type=Driver.PENDING)
    for driver in pending_drivers:
        driver.show_in_app = False
    Driver.objects.bulk_update(pending_drivers, ['show_in_app'])

class Migration(migrations.Migration):

    dependencies = [
        ('team', '0002_add_show_in_app_to_driver'),
    ]

    operations = [
        migrations.RunPython(exclude_pending_drivers),
    ]
运行时,我遇到一个错误:

AttributeError: type object 'Driver' has no attribute 'PENDING'
PENDING
定义为模型中的类变量:

class Driver(models.Model):
    PENDING = 1
    CONFIRMED = 2

    show_in_app = models.BooleanField(default=True)
    # etc
我可以在
manage.py shell
中运行上述准确的迁移代码,而且如果我使用team.models导入驱动程序而不是
apps.get_model(“团队”、“驱动程序”)
,它也可以正常运行(尽管显然不建议这样做)

有什么好处?它看起来像是驱动程序类,当它通过
apps.get_model()
包含时,它与直接导入的
不同,但肯定不是这样的