У меня есть следующие проблемы для такой вложенной модели:
def Post(models.Model)
name = models.CharField(unique=True)
content = models.TextField()
def Comment(models.Model)
post = models.ForeignKey(Post)
content = models.CharField()
Я создал сериализаторы модели по умолчанию с всеми полями.
Проблемы:
Сериализатор модели по умолчанию не работает для вложенных моделей. Я должен явно написать создать / обновить. Это было объяснено в документации, так что ничего против. Хотя я думаю, что выбор нормального значения по умолчанию может обслуживать до 99% случаев использования (а в остальном поведение может быть настраиваемым). Я постараюсь сделать снимок в этом.
Когда я пытаюсь использовать json из существующего объекта post, serializer is_valid () завершается с ошибкой, говоря: «уникальное ограничение имени не выполнено». Но я хотел его обновить, а не создавать. Если is_valid не поддерживает создание / обновление на основе идентификатора, передаваемого в json.
При создании нового вложенного json со многими комментариями is_valid () завершается ошибкой, сообщая, что «сообщение пусто». Конечно, у меня не будет идентификатора записи в json, так как создание записи еще не произошло. Так is_valid становится бесполезным. Разве is_valid не должен зависеть от того, передан ли идентификатор в json? Кроме того, я не могу использовать data / validated_data без прохода is_valid.
Установка валидаторов = [] также не удаляет валидацию полей. Я еще не нашел способ подавления проверки полей.
Я просмотрел исходный код и документацию и потратил больше суток на то, чтобы настроить что-то настолько простое.
Я, должно быть, упускаю что-то простое, поэтому любая помощь приветствуется.