Ссылка на указанный атрибут в модели с помощью связанного поля

Предположим, что у вас есть модель Person с атрибутами id и имя пользователя среди прочих.

class Person(models.Model):
    id = models.AutoField(primary_key=True)
    username = models.CharField(unique=True)
    # other fields

В Django Rest Framework существует PrimaryKeyRelatedField, который представляет цель отношения, используя его первичный ключ. При использовании в сериализаторе это будет выглядеть примерно так

class PersonSerializer(serializers.Serializer):
    id = serializers.PrimaryKeyRelatedField(
        queryset=User.objects.all(),
    )
    username = serializers.CharField(required=True)

Однако я хотел бы иметь поле, которое также нацелено на имя пользователя. Что-то похожее на

class PersonSerializer(serializers.Serializer):
    username = UsernameRelatedField(queryset=User.objects.all())

Одним из потенциальных решений, с которым я столкнулся, является создание пользовательского реляционного поля, но, похоже, оно не работает так, как ожидалось. Я хотел бы проверить, существует ли имя пользователя для пользователя.

Вернуться на верх