Встречается на собеседованиях • сегодня
Какой метод есть в миграции для запуска кода Python
Для выполнения произвольного кода Python в миграциях Django используется метод RunPython. Он принимает два аргумента - функции для применения (forward_func) и отмены (reverse_func) миграции.
Пример:
python
from django.db import migrations
def create_initial_data(apps, schema_editor):
# Получаем модель из исторической версии
MyModel = apps.get_model('myapp', 'MyModel')
# Создаем объекты
MyModel.objects.create(name='Test')
def reverse_create_initial_data(apps, schema_editor):
# Удаляем созданные объекты
MyModel = apps.get_model('myapp', 'MyModel')
MyModel.objects.filter(name='Test').delete()
class Migration(migrations.Migration):
dependencies = [...]
operations = [
migrations.RunPython(
create_initial_data,
reverse_create_initial_data
),
]
text
Важно: всегда используйте `apps.get_model()` вместо прямого импорта моделей, так как миграции работают с историческими версиями моделей.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы