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
を実装する方法がわからず、このリソースの下に新しい人を作成するのは奇妙に思えます。
何かご意見は?