Code: Select all
from django.core.exceptions import ValidationError
class MyModel(models.Model):
value = models.CharField(max_length=255)
def clean(self):
if self.value == "bad":
raise ValidationError("bad value")
def save(self):
self.full_clean()
return super().save()
Code: Select all
from rest_framework.serializers import ModelSerializer
class MyModelSerializer(ModelSerializer):
class Meta:
model = MyModel
fields = ["value"]
Code: Select all
from rest_framework.viewsets import ModelViewSet
class MyModelViewSet(ModelViewSet):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
- Sollte er von DRF abgefangen und in eine HTTP-Antwort mit einem 400-Statuscode umgewandelt werden?
- Oder sollte er wie eine normale Ausnahme behandelt werden und den Server zum Absturz bringen?
Ist das normal, oder mache ich etwas falsch?
Ich möchte meine Validierungslogik im Serializer nicht noch einmal wiederholen. Was ist hier also der richtige Ansatz?
Mobile version