Django REST Framework – Как разрешить ForeignKey к фактической стоимости, а не индексу?

У меня есть модель, такая как:

class Job(models.Model): build = models.ForeignKey(Build, on_delete=models.PROTECT) name = models.CharField(blank=True, null=True) 

и вид :

 class JobViewSet(viewsets.ModelViewSet): queryset = Job.objects.all() serializer_class = JobSerializer 

и сериализатор :

 class JobSerializer(serializers.ModelSerializer): class Meta: model = Job 

Единственная проблема – когда я получаю доступ к конечной точке API, я получаю данные, но свойство build из модели Job – это фактически целое число внешнего ключа. Я хочу фактическое значение из этого ключа (который также является моделью в моей среде отдыха Django.

Я много искал, и я нашел несколько многообещающих статей, но не получал правильных результатов, когда я пробовал разные вещи. Я еще новичок в Django … Может ли кто-нибудь из вас помочь?

Сначала создайте сериализатор для Build как:

 class BuildSerializer(serializers.ModelSerializer): class Meta: model = Build 

Далее в JobSerializer выполните следующие действия:

 class JobSerializer(serializers.ModelSerializer): build = BuildSerializer() class Meta: model = Job fields = ('name','build') 

Используйте атрибут depth .

 class BuildSerializer(serializers.ModelSerializer): class Meta: model = Build depth = 1