'''
models.py
from django.db import models
# Create your models here.
class Car(models.Model):
CAR_COLOR=(
(0,'银色'),
(1,'黑色'),
(2,'红色'),
(3,'灰色'),
)
name=models.CharField(max_length=64,verbose_name='车名',unique=True)
color=models.IntegerField(choices=CAR_COLOR,default=0,verbose_name='颜色')
price=models.DecimalField(max_digits=5,decimal_places=2,verbose_name='价格')
img=models.ImageField(upload_to='img',default='img/111.jpg',verbose_name='图片')
brand=models.CharField(max_length=64,verbose_name='品牌')
@property
def color_type(self):
return self.get_color_display()
@property
def icon(self):
from django.conf import settings
return '%s%s%s' %(settings.BASE_URL,settings.MEDIA_URL,self.img)
class Meta:
db_table='kind_car'
verbose_name_plural='汽车表'
def __str__(self):
return self.name
'''
'''
serializer.py
from rest_framework import serializers
from django.conf import settings
from api import models
class CarModelSerializer(serializers.ModelSerializer):
re_brand = serializers.CharField(min_length=3, max_length=16, write_only=True)
class Meta:
model=models.Car
fields = ('name','color_type','price','icon','brand','re_brand','color','img')
extra_kwargs={
'name':{
'min_length': 3,
'max_length': 10,
'error_messages': {
'min_length': '太短',
'max_length': '太长'
}
},
'color_type':{
'read_only': True,
},
'price':{
},
'icon':{
'read_only': True,
},
'brand':{
},
}
'''
'''
views.py
from django.shortcuts import render
# Create your views here.
from rest_framework.response import Response
from rest_framework.views import APIView
from api import models
from api import serializers
from django.conf import settings
class CarsV3APIView(APIView):
def get(self,request,*args,**kwargs):
pk=kwargs.get('pk')
if pk:
car_obj=models.Car.objects.filter(pk=pk).first()
if not car_obj:
return Response({
'status':0,
'msg':'pk error',
},status=400)
car_ser = serializers.CarModelSerializer(car_obj,many=False)
return Response({
'status':0,
'msg':'ok',
'results':car_ser.data
})
else:
car_query = models.Car.objects.all()
car_ser=serializers.CarModelSerializer(car_query,many=True)
return Response({
'status':0,
'msg':'ok111',
'result':car_ser.data
})
def post(self,request,*args,**kwargs):
car_ser=serializers.CarModelSerializer(data=request.data)
if car_ser.is_valid():
car_obj=car_ser.save()
return Response({
'status':0,
'msg':'ok',
'results':serializers.CarModelSerializer(car_obj).data
})
else:
return request({
'status':1,
'msg':car_ser.errors,
})
'''