class Restaurant(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=120, unique=True, verbose_name="Name")
direction = models.CharField(max_length=120, verbose_name="Direction")
phone = models.IntegerField()
slug = models.SlugField(blank=True)
def __str__(self):
return self.name
def get_absolute_url(self):
return f'/res/{self.slug}'
@property
def full_name(self):
return self.name
def clean(self):
from django.core.exceptions import ValidationError
if len(str(self.phone))<=5:
raise ValidationError({'phone':('Enter Correct number.')})
Метод clean () не работает. Мой код view.py выглядит следующим образом:
class RestaurantView(generics.ListCreateAPIView):
queryset=Restaurant.objects.all()
serializer_class=RestaurantSerializer
def get(self,request):
query=self.get_queryset()
serializer=RestaurantSerializer(query,many=True)
return Response(serializer.data)
def post(self,request):
serializer = RestaurantSerializer(data=request.POST)
if serializer.is_valid(raise_exception=True):
name=serializer.validated_data.get('name')
direction=serializer.validated_data.get('direction')
phone=serializer.validated_data.get('phone')
r=Restaurant()
r.name=name,
r.direction=direction,
r.phone=phone
r.save()
response={'msg':'Data Saved Successfully'}
return Response(response)
Как я могу обработать проверку метода clean ()? Я также проверяю данные в файле serializer.py, но все же хочу проверить данные в методе модели clean (). Заранее спасибо.