如何使用DjangoRestFramework使用一个Serializer序列化多个模型?

时间:2016-09-30 07:03:01

标签: django serialization django-models django-views django-rest-framework

我有这些模型,所有模型都有PointField:

class Place(models.Model):
    title = models.CharField(max_length=75, verbose_name='Заголовок')
    category = models.ForeignKey(PlaceCategory, verbose_name='Категория')
    ...
    point = geomodels.PointField(geography=True, blank=True, null=True)
    ...


class Event(models.Model):
    title = models.CharField(max_length=75, verbose_name='Заголовок')
    address = models.CharField(max_length=255, blank=True, null=True, verbose_name='Адрес')
    city = models.ForeignKey(City, verbose_name='Город')
    ...
    point = geomodels.PointField(blank=True, null=True)
    ...


class Meeting(models.Model):
    title = models.CharField(max_length=75)
    participants = models.ManyToManyField(User, related_name='participating_meetings')
    ...
    point = geomodels.PointField(blank=True, null=True)
    ...

在项目中,我有/points API网址。通过这个网址,我想返回过滤集或所有点以在地图上显示它们。 我检查了DRF文档,有一个示例如何为一个Model构建Serializer,但是如何为这些多个模型构建API视图?

1 个答案:

答案 0 :(得分:0)

这种用例是您需要删除默认自动生成的内容(序列化程序/视图)并自行滚动的典型用例。我会自己收集数据,通过-运行它们 - 可能是可选的 - 它将继承自PointSerializer并返回结果。