Если в миграции происходит импорт модуля, который был удален, то ясно, почему ошибка выводится. Обычно батарейки не так много весят, чтобы их удалять каждый раз. А если уж необходимо, то следует, по-видимому, и миграции сносить и новые начинать: удалять все миграции, makemigrations (создаст initial), migrate --fake. И БД будет не тронута со своими данными.
т.е., например, для первого на выходе должен получиться следующий массив [3, 5, 2, 4]: последовательность людей, которым первый будет задавать вопрос. Верно? И так для каждого?
Тогда в чем заключается вопрос?
Если нельзя использовать стандартные инструменты, то имеет смысл создать свое множество (полагаю, именно это и ожидается в задании)
Django не привязана к бд. Первая миграция всегда будет создавать новые таблицы из моделей.
При попытке создания таблицы на уровне бд с уже существующим названием (даже с разными полями) будет выдана ошибка. А migrate скажет FAKED и будет считать, что таблица создана.
Если таблицу в существующей бд удалять нельзя, то могу предложить способ решения проблемы с потерянными миграциями:
1. Оставить в папке migrations только файл __init__.py
2. Удалить из таблицы django_migration все записи, связанные с данным приложением (delete from django_migrations where app = 'название приложения';)
3. Выполнить команду python manage.py inspectdb и сохранить все таблицы, которые относятся нужному приложению в models.py этого приложения.
4. Переименовать названия моделей на желаемые имена.
5. python manage.py makemigrations (Таким образом первая миграция будет создавать таблицы эквивалентные тем, что уже созданы в бд)
6. python migrate (FAKED)
После можно исправлять модели и принимать новые миграции, которые будут добавлять поля, а не создавать новые таблицы.
P.S. migrations — не папка, а пакет. Трогать его не стоит, тогда и проблем с миграциями не будет.
Не знаю, как в апачи посмотреть.
Если запуск рансервера идет из консоли python manage.ry runserver, то which python покажет, где лежит интерпретатор.
Правильнее будет посмотреть на лог ошибки. Поставь в settings.py DEBUG = True, запусти сервер и смотри лог.