相关疑难解决方法(0)

Django迁移RunPython无法调用模型方法

我正在使用该RunPython方法创建数据迁移.但是,当我尝试在对象上运行方法时,没有定义.是否可以使用RunPython?调用模型上定义的方法?

django django-models django-migrations

45
推荐指数
5
解决办法
1万
查看次数

如何在数据迁移中访问模型的类级变量?

这是我的模特.

Poll(models.Model):
   title = models.CharField(max_length=1024)
   MY_VAR = ['my_class_level_attribute'] # I want to access this
Run Code Online (Sandbox Code Playgroud)

这是我的数据迁移:

def my_func(apps, schema_editor):
    Poll = apps.get_model('my_app', 'Poll')
    print Poll.MY_VAR


class Migration(migrations.Migration):

    dependencies = [
        ('webmerge', '0012_previous_migration'),
    ]

    operations = [
        migrations.RunPython(my_func)
    ]
Run Code Online (Sandbox Code Playgroud)

该行print Poll.MY_VAR给出了属性错误.我认为问题可能在于如何get_model在数据迁移中执行,因为以下行在Django shell中成功:

In [2]: from django.apps import apps
In [3]: Poll = apps.get_model('my_app', 'Poll')
In [4]: Poll.MY_VAR
Out[4]:  ['my_class_level_attribute']
Run Code Online (Sandbox Code Playgroud)

django django-models django-1.8

5
推荐指数
1
解决办法
1445
查看次数