Python Django Rest框架:ModelSerializer中的ModelSerializer as字段不';不显示选择
我有两种型号:Python Django Rest框架:ModelSerializer中的ModelSerializer as字段不';不显示选择,python,django,django-rest-framework,models,Python,Django,Django Rest Framework,Models,我有两种型号: class Article(models.Model): name = models.CharField(max_length=255) price = models.DecimalField(max_digits=8, decimal_places=2) class Order(models.Model): article = models.ForeignKey(article, related_name='orders') bought_on
class Article(models.Model):
name = models.CharField(max_length=255)
price = models.DecimalField(max_digits=8, decimal_places=2)
class Order(models.Model):
article = models.ForeignKey(article, related_name='orders')
bought_on = models.DateTimeField()
和两个序列化程序类:
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
class OrderSerializer(serializers.ModelSerializer):
article = ArticleSerializer()
class Meta:
model = Order
现在,如果我想请求订单选项,我不会得到“选项”,看起来是这样的:
"article": {
"type": "field",
"required": true,
"read_only": false,
"label": "Article"
},
如果我删除
article=ArticleSerializer()
从OrderSerializer,一切正常,我得到了很多关于文章的信息,例如:
"article": {
"type": "field",
"required": true,
"read_only": false,
"label": "Article",
"choices": [
{
"display_name": "Headphones - 29.00",
"value": "8"
},
{
"display_name": "Monitor- 199.00",
"value": "12"
},
]
},
所以我的问题是:
是否有可能覆盖ArticleSerializer中的choices字段,或者是否有其他方法在API视图中将文章显示为选项以下是Tom Christie给我的答案: 如果是嵌套项,则不希望将其显示为选项。相反,我们应该将其显示为嵌套字段。(我们可以认为这是一个有效的问题,我会把它看作是我自己雷达上的低优先级,所以除非有其他人在运行它,那么……) 在您自己的项目中(而不是在核心项目中)支持这一点方面,关于如何进行这一工作,这里有一些有限的信息。。。但您还需要深入研究现有的元数据类实现