Встречается на собеседованиях • сегодня
Можно ли к миграции привязать Python код
Да, в Django можно привязать Python-код к миграциям через RunPython или RunSQL. RunPython позволяет выполнить произвольный Python-код при применении (forwards) или откате (backwards) миграции.
Пример:
python
from django.db import migrations
def forwards_func(apps, schema_editor):
User = apps.get_model('auth', 'User')
User.objects.create(username='admin')
def reverse_func(apps, schema_editor):
User = apps.get_model('auth', 'User')
User.objects.filter(username='admin').delete()
class Migration(migrations.Migration):
dependencies = [('myapp', '0001_initial')]
operations = [
migrations.RunPython(forwards_func, reverse_func),
]
text
**Нюансы:**
- Используйте `apps.get_model()` вместо прямого импорта моделей.
- `reverse_func` необязателен, но желателен для отката.
- Для сложных операций предпочтительнее `RunSQL`.
- Избегайте бизнес-логики в миграциях — только данные и схема.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы