У меня есть устаревшая система, над которой я работаю, и она имеет FormSerializer следующим образом:
class SburblesFormSerializer(serializers.HyperlinkedModelSerializer):
user = serializers.PrimaryKeyRelatedField(queryset=User.objects.all(),
default=serializers.CurrentUserDefault())
status = serializers.PrimaryKeyRelatedField(queryset=Status.objects.all(),
default=serializers.CreateOnlyDefault(Status.objects.get(pk=1)))
И система имеет приспособление для заполнения этих статусов.
Когда я настраиваю новую среду, python manage.py migrate
не работает, генерируя ProgrammingError
django.db.utils.ProgrammingError: relation "api_status" does not exist
LINE 1: ...i_status"."name", "api_status"."description" FROM "api_statu...
Затем, чтобы запустить миграцию, я могу удалить параметры по умолчанию из PrimaryKeyRelatedField
, перенести и затем откатить изменения в этом файле сериализатора.
Но я хотел бы понять 2 вещи:
- Почему Django пытается выполнить это, прежде чем вызыватьСериализатор
- Как правильно решить эту проблему, не удаляя настройки по умолчанию и не возвращая их каждый раз, когда необходимо настроить систему на новом компьютере.