class Book(models.Model):
CATEGORY = (
(1, "Sci-Fi"),
(2, "Romance"),
(3, "Fantasy"),
# more categories...
)
title = models.CharField(max_length=255)
cat = models.IntegerField(choices=CATRGORY, null=True, blank=True)
author = models.ManyTboManyField('User', related_name="book")
这是我的模特。我想要的是如何/我应该发送响应数据,我的意思是格式。(JSON)
例如(对书的回应)
{"author": [1,3,4], "title": "my book", "cat": 1, 'bookid': 23 }
或
{"author": [1,3,4], "title": "my book", "cat": "Sci-Fi", 'bookid': 23 } #slugify name
第一种类型的问题是我必须在前端维护这个元组/映射(对于最终用户可视化)和id用于内部映射,api-DB交互。
从第二种类型我不知道如果某些api发布/将一些数据发送到我的系统,我将如何映射,我不知道该类别属于哪个id。
我需要像你这样拥有丰富网络服务开发经验的人的建议,并指导我以最佳方式开发API,这对未来的新手或学习用户有所帮助。
答案 0 :(得分:2)
我个人更希望两者都出现在API响应中,例如:
{"author": [1,3,4], "title": "my book", "cat_id": 1, "cat_name": "Sci-Fi"}
原因是,只是id并没有自己提供关于类别的大量信息,而且名称在未来是可变的,所以单凭这两者都没有帮助。
当然,对于两者,我们可以在文档中指定cat_name
用于美容目的,而cat_id
是保持相同的。