我要建一个Django tastypie API,和我有一个问题,在添加元素ManyToMany
关系
例如,models.py
class Picture(models.db):
""" A picture of people"""
people = models.ManyToManyField(Person, related_name='pictures',
help_text="The people in this picture",
)
class Person(models.db):
""" A model to represet a person """
name = models.CharField(max_length=200,
help_text="The name of this person",
)
资源:
class PictureResource(ModelResource):
""" API Resource for the Picture model """
people = fields.ToManyField(PersonResource, 'people', null=True,
related_name="pictures", help_text="The people in this picture",
)
class PersonResource(ModelResource):
""" API Resource for the Person model """
pictures = fields.ToManyField(PictureResource, 'pictures', null=True,
related_name="people", help_text="The pictures were this person appears",
)
我的问题是,我想有一个add_person
在我的图片资源终点。 如果我使用PUT
,然后我需要在画面中指定的所有数据如果我使用PATCH
,我还需要指定画面中的所有的人。 当然,我可以简单地生成/api/picture/:id/add_people
URL有我能胜任我的问题。 但问题是,它不觉得干净。
另一个解决方案是生成/api/picture/:id/people
的终点,在那里我可以做的GET
, POST
, PUT
,就像是一个新的资源,但我不知道如何实现这一点,它似乎有些奇怪创建这个资源下,新人们。
有什么想法吗?