Посмотреть новый столбец, обусловленный другими столбцами в Джанго - PullRequest
0 голосов
/ 05 мая 2018

В Django 1.11 я пытаюсь добавить новый столбец, который зависит от других столбцов (как показано на рисунке ниже), и просмотреть его во внешнем интерфейсе. Эта ссылка является наиболее близким примером, но я хотел бы реализовать его в Django. Как мы можем это сделать?

enter image description here

1 Ответ

0 голосов
/ 05 мая 2018

Я предлагаю реализовать это действие для файла миграции:

  1. После изменения модели выполните ./manage.py makemigrations

  2. Откройте новый файл миграции в редакторе, содержание этого файла может быть таким же, как показано ниже:

    from django.db import migrations, models
    
    class Migration(migrations.Migration):
    
        dependencies = [('migrations', '0001_initial')]
    
        operations = [
            migrations.AddField('MyModel', 'A_islargerthan_B', models.BooleanField(default=False)),
        ]
    
  3. Теперь вы должны ввести свой код обновления с помощью migrations.RunPython:

    from django.db import migrations, models
    
    
    def update_A_islargerthan_B(apps, schema_editor):
        MyModel = apps.get_model('my_app', 'MyModel')
        for obj in MyModel.objects.all():
            obj.A_islargerthan_B = obj.column_A > obj.column_B
            obj.save()
    
    
    class Migration(migrations.Migration):
    
        dependencies = [('migrations', '0001_initial')]
    
        operations = [
            migrations.AddField('MyModel', 'A_islargerthan_B', models.BooleanField(default=False)),
            migrations.RunPython(update_A_islargerthan_B),
        ]
    
  4. Пробег ./manage.py migrate

Подробнее о Миграции Django

...