Validation
Validation
from rest_framework import serializers
from .models import Blog
class BlogSerializer(serializers.ModelSerializer):
class Meta:
model = Blog
fields = '__all__'
def validate_title(self, value):
existing_blogs = Blog.objects.filter(title=value)
if self.instance:
existing_blogs = existing_blogs.exclude(pk=self.instance.pk)
if existing_blogs.exists():
raise serializers.ValidationError("A blog with this title already exists.")
return value
or
from rest_framework import serializers
from .models import Blog
class BlogSerializer(serializers.Serializer):
title = serializers.CharField(max_length=100)
content = serializers.CharField()
created_at = serializers.DateTimeField(read_only=True)
updated_at = serializers.DateTimeField(read_only=True)
def create(self, validated_data):
return Blog.objects.create(**validated_data)
def update(self, instance, validated_data):
instance.title = validated_data.get('title', instance.title)
instance.content = validated_data.get('content', instance.content)
instance.save()
return instance
def validate_title(self, value):
existing_blogs = Blog.objects.filter(title=value)
if self.instance:
existing_blogs = existing_blogs.exclude(pk=self.instance.pk)
if existing_blogs.exists():
raise serializers.ValidationError("A blog with this title already exists.")
return value
Last updated