python - 枚举 Python 如何响应
问题描述
有没有办法在 Postman 的 model.py 类型字符串中显示 status_choices?
我的模型.py
class Transaction(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
address = models.TextField()
status_choices = (
(1, 'in processing'),
(2, 'in delivery'),
(3, 'done'),
(4, 'cancel'),
)
status = models.CharField(max_length=1, choices=status_choices)
total = models.BigIntegerField()
phone_number = models.CharField(max_length=10)
variants = models.ManyToManyField(Variant, through='TransactionVariant')
created_at = models.DateTimeField(auto_now_add=True, blank=True)
updated_at = models.DateTimeField(auto_now_add=True, blank=True)
deleted_at = models.DateTimeField(null=True, blank=True)
class Meta:
db_table = "transaction"
序列化程序.py
class TransactionSerializer(serializers.Serializer):
# status = StatusSerializer(many=False, read_only=True)
user_id = serializers.IntegerField()
transaction_id = serializers.IntegerField(source='id')
product = serializers.CharField(source='name')
status = serializers.CharField()
address = serializers.CharField()
total = serializers.IntegerField()
phone_number = serializers.IntegerField()
created_at = serializers.DateTimeField(format='%H:%M %d %b %Y')
我在邮递员中的回复:
"user_id": 5,
"transaction_id": 1,
"product": "product1",
"status": "3",----------> I want this field return what exactly in my model designer
"address": "trung nu vuong 3",
"total": 123,
"phone_number": 1234567890,
"created_at": "09:35 21 Jan 2019"
我想要响应返回
{
status: done
}
解决方案
您需要使用 SerializerMethodField
status = serializers.SerializerMethodField("get_status_as_char")
def get_status_as_char(self, obj):
return obj.get_status_display()
推荐阅读
- vba - 在 MS word 中使用宏,我尝试使用宏来截取屏幕截图,但我能够全屏而不是特定区域
- javascript - 如何通过 React js 中的普通代码使用/创建通知/toastr?
- java - 使用 Java 重置 json 对象中的数据的建议
- python - 在python中抓取许多url的数组
- html - 当我放 flex-grow= 1 时,为什么图像(来自 fontawesome)从文本中移开
- python - 如何使枚举指向一个类
- reactjs - 如何在一个 useEffect 反应中更新多个状态?
- flutter - 从 Flutter 登录 google 时,帐户选择器后没有任何反应
- html - 响应性/左边距
- java - 如何根据其他线程的响应在主线程中执行某些任务?