Чтобы сделать его коротким: У меня есть сериализатор (django rest framework), который имеет два настраиваемых поля, которые непосредственно не соответствуют полю моей модели, а также имеют другое имя. Метод to_internal_value() (возможно) работает, но я не знаю, как получить доступ к почтовым данным этих полей.Получить данные из CustomField в каркасе отдыха django
И в случае, если вам нужно больше информации о моем случае:
У меня есть модель Джанго, которая выглядит следующим образом:
class Requirement(models.Model):
job = models.ForeignKey('Job', related_name = 'requirements')
description = models.CharField(max_length = 140)
is_must_have = models.BooleanField() # otherwise is of type b
class Job(models.Model):
...
Я хочу сериализовать его таким образом, чтобы объект задания будет выглядеть как это:
{ "must_have": [must have requirements], "nice:to_have": [nice to have requirements] }
Поэтому, у меня есть собственные поля в моем сериализаторе вакансии:
class JobSerializer(serializers.Serializer):
nice_to_have = NiceToHaveField(source = 'requirements', allow_null = True)
must_have = MustHaveField(source = 'requirements', allow_null = True)
Симметричные классы NiceToHaveField и MustHaveField переопределяют методы to_representation() и to_internal_value(), to_representation также сортирует требования после типа. Но validated_data
в JobSerializer.create никогда не содержит эти поля cutom. Я знаю, что to_internal_value вызывается и выполняет свою работу, но результаты недоступны.
Каков способ решения проблемы?