DRF не отображает поле PK в сериализаторе

По аналогии с этим, я хочу показать всю связанную информацию в выводе сериализатора на HTML-странице:

Модель:

class Shipment(models.Model):
    name = models.CharField("name", max_length = 128)
    date = models.DateField()

class DebitSum(models.Model):
    name = models.CharField("name", max_length = 128)
    shipment = models.ForeignKey(Shipment, on_delete = models.CASCADE, blank = True, null = True)

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

class ShipmentSerializer(serializers.ModelSerializer):
    class Meta:
        model = Shipment
        fields = ["pk", "name", "date",]

class DebitSumSerializer(serializers.ModelSerializer):
    shipment = ShipmentSerializer()

    class Meta:
        model = DebitSum
        fields = ["name", "shipment",]    

This leads to a HTML page where I can fill in a name for the shipment, but not just an ID or PK. I tried altering to:

class ShipmentSerializer(serializers.ModelSerializer):
    id = serializers.ReadOnlyField()
    class Meta:
        model = Shipment
        fields = ["id", "name", "date",]

В request.data написано следующее:

<QueryDict: {'shipment.name': ['2'], ...}> #oviously fails

в то время как я бы хотел, чтобы это выглядело именно так:

<QueryDict: {'shipment.pk': [2], ...}>




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