在构建大型web后端时,我们面临的问题是,我们的模型具有很多属性。为了提高效率,我们希望减小响应的大小,因此我们为模型使用了不同的序列化器。以这个简单的模型为例:
class Address(models.Model):
country_id = models.ForeignKey(Country, on_delete=models.PROTECT)
postal_code = models.CharField(max_length=10)
street = models.CharField(max_length=176)
number = models.CharField(max_length=20)
additional = models.CharField(max_length=256, blank=True, default='')
city = models.CharField(max_length=176)
state = models.CharField(max_length=50)
user = models.ForeignKey('user.User', on_delete=models.CASCADE)
仅就这一点而言,我们就有一个ID序列化器、一个StringSerializer(用于传递可用字符串)、一个MinimalSerializer(用于多个地址的列表)和一个DetailSerializer(深度=1,用于获取国家和用户详细信息。。。
现在,由于这种复杂性,我们面临着几个问题,并考虑重组api以在请求中包含所需的字段。使用django+drf可以吗?我们相信能在下面找到东西
Content Negotiation
但这是另一个话题。