【发布时间】:2021-02-06 17:28:38
【问题描述】:
我的模型“OrderItem”中有几个字段是 ChoiceFields 或 Enums。我想代表选择的标签并使用serializers.CharField(source='get_service_display')。另见Django Rest Framework with ChoiceField。
这工作正常,但创建对象不再工作,出现以下错误消息OrderItem() got an unexpected keyword argument 'get_service_display'
这是我的模型
class OrderItem(TimeStampedModel):
class Categories(models.IntegerChoices):
GRASS = (1, _('grass'))
order = models.ForeignKey(Order, related_name='order_items', on_delete=models.CASCADE)
unit_price = models.DecimalField(max_digits=6, decimal_places=2)
category = models.IntegerField(choices=Categories.choices)
这里是我的序列化器
class OrderItemSerializer(serializers.ModelSerializer):
id = serializers.IntegerField(required=False)
category = serializers.CharField(source='get_category_display')
class Meta:
model = OrderItem
fields = ['id', 'unit_price', 'category']
read_only_fields = ['unit_price']
我怎样才能创建这样的模型?
【问题讨论】:
标签: django django-rest-framework