Ссылка на указанный атрибут в модели с помощью связанного поля
Предположим, что у вас есть модель 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())
Одним из потенциальных решений, с которым я столкнулся, является создание пользовательского реляционного поля, но, похоже, оно не работает так, как ожидалось. Я хотел бы проверить, существует ли имя пользователя для пользователя.