ArsenBespalov
@ArsenBespalov
Сам себе разработчик

Как в DRF проверять не по первичному ключу?

Пишу API, возникло требование, чтобы на этапе добавления записи передавалось значение не первичного ключа, а какого-то значения из модели.

# models.py
class ModelTwo(models.Model):
    number = models.CharField(max_length=12, unique=True)


class ModelOne(models.Model):
    model_two = models.ForeignKey("ModelTwo", related_name="model_two", on_delete=model.CASCADE)


# serializers.py
class ModelOneSerializer(serializers.ModelSerializer):
    model_two = serializers.PrimaryKeyRelatedField(queryset=ModelTwo.objects.all())

    class Meta:
        model = ModelOne
        fields = ("id", "model_two")


Как при запросе в поле model_two не pk передавать, а number, чтобы прошла валидация?
  • Вопрос задан
  • 268 просмотров
Пригласить эксперта
Ответы на вопрос 1
@FulTupFul
class ModelOneSerializer(serializers.ModelSerializer):
    model_two = ModelTwo(read_only=True, many=True)

    class Meta:
        model = ModelOne
        fields = ("id", "model_two")
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы