【发布时间】:2021-02-18 19:34:10
【问题描述】:
我想用person_id 做一些api。
但是我不能用这个模型处理我的 ModelSerializers。
如何定义我的序列化程序?
models.py
class Vaccine(models.Model):
name = models.CharField(max_length=32)
description = models.CharField(max_length=64)
class Person(models.Model):
email = models.EmailField(blank=True, null=True, unique=True)
nickname = models.CharField(max_length=16, blank=True,
vaccinations = models.ManyToManyField(Vaccine,
through='Vaccination',
through_fields=('person', 'vaccine'))
class Vaccination(models.Model):
person = models.ForeignKey(Person, on_delete=models.CASCADE)
vaccine = models.ForeignKey(Vaccine, on_delete=models.CASCADE)
reserved_at = models.DateTimeField()
is_edited = models.BooleanField()
想要:
获取http://localhost:8000/person/123/vaccinations
{
'person_id': 123,
'vaccines': [
{
'name': 'Flu',
'description': 'Flu',
'vaccinations': [
{
'reserved_at': '2020-12-25',
'is_edited': true
},
{
'reserved_at': '2020-12-31',
'is_edited': false
}
]
}
]
}
感谢您的阅读。
【问题讨论】:
标签: api serialization django-rest-framework many-to-many reverse