uma*_*mat 7 django django-rest-framework
我有以下型号:
from django.db import models
class City(models.Model):
name = models.CharField(max_length=30)
last_update = models.DateTimeField(null=True)
class BusStop(models.Model):
city = models.ForeignKey(City, on_delete=models.CASCADE)
name = models.CharField(max_length=200, blank=True, default='')
Run Code Online (Sandbox Code Playgroud)
现在使用 Django Rest Framework,我想创建序列化器,它将返回城市详细信息以及城市中所有公交车站的列表 - 但我希望该列表仅是带有公交车站名称的字符串,如下所示:
{
"id": 1
"name": "City"
"last_update": "2019-09-19T22:13:54.851363Z"
"bus_stops": [
"stop1",
"stop2",
"stop3"
]
}
Run Code Online (Sandbox Code Playgroud)
到目前为止我所尝试的是以下序列化器:
{
"id": 1
"name": "City"
"last_update": "2019-09-19T22:13:54.851363Z"
"bus_stops": [
"stop1",
"stop2",
"stop3"
]
}
Run Code Online (Sandbox Code Playgroud)
但这会创建其中包含“名称”的对象列表。那么,如何创建一个仅包含BusStop名称(作为字符串)的列表?
StringRelatedField,如 wfehr 所推荐的,仅当__str__BusStop 方法仅返回名称时才有效。另一种方法是使用SlugRelatedField,它允许您从相关模型中指定特定字段,并且不依赖于__str__.
bus_stops = SlugRelatedField(many=True, slug_field='name')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3765 次 |
| 最近记录: |