【问题标题】:How to serialize multiple models with one Serializer using DjangoRestFramework?如何使用 DjangoRestFramework 使用一个序列化器序列化多个模型?
【发布时间】:2017-02-08 16:20:15
【问题描述】:

我有这些模型,它们都有 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 url。通过这个 url,我想返回过滤集或所有点以在地图上显示它们。 我查看了 DRF 文档,有示例如何为一个模型构建序列化器,但是如何为这些多个模型构建 API 视图?

【问题讨论】:

  • 发布您制作序列化程序的最佳方法。 (不相关:您为什么使用第三方点字段而不是 geodjango?)

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


【解决方案1】:

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

【讨论】:

  • 你能给个这样的PointSerializer的sn-p吗?
猜你喜欢
  • 2013-05-02
  • 1970-01-01
  • 2021-02-09
  • 1970-01-01
  • 2013-05-10
  • 2017-02-13
  • 2017-05-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多