У меня есть модели, как это:Запись только, только для чтения поля в рамках Джанго отдыха
class ModelA(models.Model):
name = models.CharField()
class ModelB(models.Model):
f1 = models.CharField()
model_a = models.ForeignKey(ModelA)
сериализаторы:
class ASerializer(serializers.ModelSerializer):
model_b_ids = serializers.CharField()
class Meta:
model = ModelA
write_only_fields = ('model_b_ids',)
просмотров:
class AView(CreateModelMixin, GenericViewSet):
def perform_create(self, serializer):
model_b_ids = parse_somehow(serializer.validated_data["model_b_ids"])
#do something...
Проблема я получаю с «model_b_ids»
Пользователь должен отправить его при отправке почтовых данных.
Я использую его в файле perform_create для ссылки на связанные модели.
Но это не «настоящий столбец» в ModelA, поэтому, когда я пытаюсь сохранить его, возникает исключение.
Я пробовал его всплывать из validated_data, но затем снова получал ошибку где-то, что не может прочитать model_b_ids из модели. Любая идея по правильному использованию этого поля?
Я только что обновил DRF с 3.1.3 до 3.3.3, и вдруг мои пароли пользователей были отправлены обратно (у меня было до атрибута «write_only» Meta. Решение устраняет эту проблему. Благодаря! – vabada