В моей модели есть поля refundable
и refundable_price
. Мне нужно быть уверенным, что refundable_price
не None
в случае, если refundable
равно True
.
Поскольку я хочу его везде, я переопределил SubOffer.clean
метод:
from django.core.exceptions import ValidationError
def save(self, **kwargs):
self.full_clean()
super().save(**kwargs)
def clean(self):
super().clean()
if self.refundable and self.refundable_price is None:
raise ValidationError("V prípade refundovateľnej ponuky je nutné zadať sumu (je možné zadať aj 0)")
И я пользуюсь ModelViewSet
.
class SubOfferViewSet(ModelViewSet):
serializer_class = SubOfferSerializer
filterset_fields = {
# 'approved_by': ['exact'],
# 'approved_dt': ['gte', 'lte', 'gt', 'lt'],
}
def get_queryset(self):
return SubOffer.objects.all()
Странно то, что когда я посылаю POST
на ViewSet
, он возвращает 500
вместо JSON
ошибок, если в Suboffer.clean
есть ошибка. Другие ошибки работают правильно.
То же самое, когда я использую AJAX
и когда я использую DRF API Viewer
.
Как это возможно и как заставить его работать должным образом?