DRF数据验证+数据存储
生活随笔
收集整理的這篇文章主要介紹了
DRF数据验证+数据存储
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.驗證數據的自定義類
class BooksDRFt(serializers.ModelSerializer):class Meta:model = Bookfields = '__all__'#要驗證的字段author = serializers.CharField(required=False)#要驗證的字段name = serializers.CharField(min_length=2, error_messages{'required': '不能為空', 'min_length': '最短長度是二'})#局部鉤子def validate_name(self,value):response = {'status':100,'msg':'成功'}res = models.Book.objects.filter(name=value)if res:raise exceptions.ValidationError('書名重復!')else:return value#全局鉤子def validate(self, attrs):name = attrs.get('name')price = attrs.get('price')if str(name) == str(int(price)):raise exceptions.ValidationError('重復!')else:return attrs? 注意:1 必須繼承ModelSerializer
? 2.在視圖函數中的使用
? 1 驗證+存儲數據
class Books(APIView):def post(self,request):book_res = common.BooksDRFt(data=request.data)if book_res.is_valid():book_res.save()return JsonResponse(book_res.data,safe=False)else:return JsonResponse(book_res.errors)? 2 驗證+修改數據
class BooksUpdateCreate(APIView):def put(self,request,id):book = models.Book.objects.filter(id=id).first()book_res = common.BooksDRFt(data=request.data,instance=book)if book_res.is_valid():book_res.save()return JsonResponse(book_res.data,safe=False)else:return JsonResponse(book_res.errors)轉載于:https://www.cnblogs.com/jianhaozhou/p/10110534.html
總結
以上是生活随笔為你收集整理的DRF数据验证+数据存储的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到父母搬新家是什么意思
- 下一篇: C# 依赖注入那些事儿