Является ли значок AzureDevOps / VSTS Spike Снежинка или Джек / Костяшка?

Я решил проблему следующим образом:

Переопределить метод to_internal_value из SlugRelatedField, рассматривая исключение DoNotExist, чтобы не вызвать ошибку.

class CouponSlugRelatedField(serializers.SlugRelatedField):

    def to_internal_value(self, code):
        try:
            return Coupon.objects.only_valid().get(code=code)
        except Coupon.DoesNotExist:
            return Coupon.objects.none()


class CouponSerializer(serializers.Serializer):
    code = CouponSlugRelatedField(
        slug_field='code',
        required=False,
        source='coupon',
        allow_null=True,
        queryset=Coupon.objects.only_valid()
    )

    def to_representation(self, coupon):
        return {
            'code': coupon.code,
            'discount_amount': coupon.discount_amount,
            'discount_percentage': coupon.discount_percentage,
            'only_first_order': coupon.only_first_order,
        }
-1
задан Hkr.Oz 18 January 2019 в 21:08
поделиться