Django Метод get_foo_display в методе REST API GET для нескольких результатов, а также метод POST с ключевыми значениями - PullRequest
0 голосов
/ 15 апреля 2020

Я работаю над Django Серверной частью Rest Framework для интерфейса React, и у меня есть сценарий, в котором у модели, с которой я работаю, есть ряд полей выбора, настроенных на стороне Django. Используя те же ключевые значения, я построил поля на стороне React, такие как 'm', 'Male'. У меня проблема в том, что я могу создать новую запись и отправить эти значения ключа (например, «m»), но когда я вызываю API, чтобы получить все записи и отобразить их на веб-странице, я хочу увидеть полные значения, поступающие из API. непосредственно. Я знаю о методе get_foo_display, и я использовал его на Serializer, и он работал для получения результатов, но затем сломал метод создания (post) с ошибкой ниже:

Получил TypeError, когда звонит Person.objects.create(). Это может быть связано с тем, что в классе сериализатора имеется доступное для записи поле, которое не является допустимым аргументом Person.objects.create(). Вам может потребоваться сделать это поле доступным только для чтения или переопределить метод PersonSerializer.create () для правильной обработки.

Существует ли простой способ охватить оба сценария ios: 1. При создании записей отправляйте значения ключей, связанные со значениями выбора. 2. При получении результирующих наборов методом GET показывайте полное значение полей.

Используется ниже строки, которая прервала метод POST:

status = serializers.CharField(source='get_status_display', required=False, allow_null=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...