小编Jas*_*rse的帖子

如何使用 django 模型 clean() 方法?

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.')})
        
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

如何处理 …

django django-models django-views django-rest-framework

3
推荐指数
1
解决办法
1万
查看次数

如何使用 python 检查本地计算机中给定 url 上是否存在图像文件

我想检查给定路径上是否存在图像。代码片段如下:

if the image exists:
   #business logic
else:
   #set default logo
Run Code Online (Sandbox Code Playgroud)

python django

2
推荐指数
1
解决办法
2840
查看次数