1,models.py
#訂單表 class Orders(models.Model): status_cat = ( ('0', '待裝貨'), ('1', '正在運輸'), ('2', '已到達目的地'), ) orders_status = ( ('0', '待接單'), ('1', '已完成'), ) order_num = models.CharField(max_length=255,verbose_name='訂單編號') order_car = models.CharField(max_length=255,verbose_name='運輸車輛') o_price = models.DecimalField(max_digits=10, decimal_places=2,verbose_name='總價') o_status = models.IntegerField(default=0,verbose_name='運輸狀態',choices=status_cat) order_status = models.IntegerField(default=0,verbose_name='訂單狀態',choices=orders_status) s_user_type = models.IntegerField(verbose_name='所屬貨主') # 所屬App_Client_User o_user_type = models.IntegerField(verbose_name='所屬車主') # 所屬App_Client_User
2.serializers.py
class OrdersSerializers(serializers.ModelSerializer): #定義內置類 class Meta: #指定序列化的字段 model = Orders #取所有的字段 fields = "__all__" o_status = serializers.SerializerMethodField() def get_o_status(self,row): if row.o_status == 0: status = '待裝貨' return status elif row.o_status == 1: status = '正在運輸' return status elif row.o_status == 2: status = '已到達目的地' return status order_status = serializers.SerializerMethodField() def get_order_status(self,row): if row.order_status == 0: status = '待接單' return status elif row.order_status == 1: status = '已完成' return status
3.views.py
#我的貨單 class My_orders(APIView): def post(self,request): data = {} try: ret = request.POST.get("token") ret = jwt.decode(ret,'secret_key',algorithms=['HS256']) result = App_Client_User.objects.get(u_phone=ret['u_name']) if result.user_type == 8: data['code'] = StatusEnum.SUCCESS.value data['mes'] = CodeEnum.SUCCESS.value res = Orders.objects.filter(s_user_type = result.id) ser = serializers.OrdersSerializers(many=True,instance=res) data['data'] = ser.data return JsonResponse(data) else: data['code'] = StatusEnum.SUCCESS.value data['mes'] = '您不是貨主' return JsonResponse(data) except: data['code'] = StatusEnum.FAIL.value data['mes'] = CodeEnum.FAIL.value return JsonResponse(data)
結果:
{ "code": 200, "mes": "成功", "data": [ { "id": 1, "o_status": "待裝貨", "order_status": "待接單", "order_num": "k20190918", "order_car": "寧A8888", "o_price": "50000.00", "s_user_type": 9, "o_user_type": 6 }, { "id": 2, "o_status": "正在運輸", "order_status": "已完成", "order_num": "k20190912", "order_car": "寧A9999", "o_price": "100000.00", "s_user_type": 9, "o_user_type": 6 } ] }