c типом поля id, его тип отображался как string вместо integer
Проблема была в том, что я руками задал
id = serializers.ReadOnlyField(source=‘pk’)
Встретил такое в каком-то туториале, если верно понимаю, чтобы перенаправлять то, что записано в id в pk
Решения два:
1 использовать IntegerField, тогда тип поля в swagger integer
id = serializers.IntegerField(source=‘pk’, read_only=True)
2 вообще не определять отдельно поле id, тоже тип integer в swagger
Оба варианта работают корректно на первый взгляд, я склоняюсь ко второму
Проверил, объекты созданные по второму варианту доступны и по Model.objects.get(id=1) и по Model.objects.get(pk=1).
Вопрос: Не получу ли я неожиданного сайд-эффекта из-за того, что не указываю явно записывать значение id в pk?
Используй второй вариант. pk это алиас для поля id
спасибо
Обсуждают сегодня