Django сериализатор не возвращает все поля в ответ - PullRequest
0 голосов
/ 27 апреля 2020

У меня следующий сериализатор в Django. Однако сериализатор не возвращает все поля в ответе. 'sum' и 'amount_ordered' не возвращаются, все остальные поля являются .. ключевой момент: это единственные 2 поля, которые у меня есть в моей модели. Поэтому я подумал, что мне нужно только добавить их в список полей?

class AdminOrderItemSerializer(serializers.Serializer):
    purchase_order = serializers.CharField(source="get_purchase_order")
    reference = serializers.CharField(source="get_reference")

    class Meta:
        model = OrderItem
        fields = [
            "purchase_order",
            "reference",
            "amount",
            "ordered_amount",
        ]

    def create(self, validated_data):
        pass

    def update(self, instance, validated_data):
        pass

Модель:

class OrderItem(models.Model):
    ordered_amount = models.IntegerField(validators=[MinValueValidator(0)])
    amount = models.IntegerField(default=0)

    order = models.ForeignKey(
        Order, on_delete=models.CASCADE, related_name="order_items"
    )

    def get_purchase_order(self):
        return self.order.purchase_order

    def get_reference(self):
        return self.order.reference

1 Ответ

1 голос
/ 27 апреля 2020

Используйте serializers.ModelSerializer вместо serializers.Serializer как

class AdminOrderItemSerializer(<b>serializers.ModelSerializer</b>):
    # your code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...