django獲取choices的顯示值


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
        }
    ]
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM