外部キーを許可するビューとシリアライザーを作成する方法について、django と django rest フレームワークに関するすべてのドキュメントを接続するのに非常に苦労しています。
編集: ここに答えがあるかもしれません: http://www.django-rest-framework.org/api-guide/relations/#writable-nested-serializers
例 私はこれらのモデルを持っています。
class SearchCity(models.Model):
city = models.CharField(max_length=200)
class SearchNeighborhood(models.Model):
city = models.ForeignKey(SearchCity, on_delete=models.CASCADE)
neighborhood = models.CharField(max_length=200)
都市を選択して、その都市にあるすべての近隣を表示し、近隣を追加、編集、近隣を削除できるようにしたいと考えています。
おそらく、都市が持つすべての地区を取得するか、都市の新しい地区を作成するための URL
url(r'^neighborhood/(?P<citypk>[0-9]+)$', SearchNeighborhoodListCreate.as_view()),
もう 1 つは近隣を編集および削除するためのものです。
url(r'^neighborhood/(?P<citypk>[0-9]+)/(?P<neighborhoodpk>[0-9]+)$',SearchNeighborhoodDetail.as_view()),
現在、DRF GenericsのListCreateAPIView
とを使用しています。RetreiveUpdateDestoryAPIView
query_setrelated
モデルが持つすべての関係を取得できるようなオプションがあることを理解しています。
私たちには選択肢があることを知っていx_set
ます。私の例ではこのように使用されています。Searchcity.SearchNeighborhood_set.all()
関連するシリアライザーがあることは知っています
そして、私がそれらを作成する適切な方法は次のとおりです。
class CityNeighborhoodSerializer(serializers.ModelSerializer):
neighborhood = serializers.PrimaryKeyRelatedField(many=True, read_only=False)
class Meta:
model = SearchCity
fields = ('City', 'neighborhood')
しかし、このユースケースではどのように使用すればよいでしょうか?
http://www.django-rest-framework.org/api-guide/relations/#serializer-relations
リンクはここにあります http://gregblogs.com/tlt-how-to-retrieve-the-fields-of-a-related-model-from-a-django-残りのフレームワーク エンドポイント/
しかし、それは関連するオブジェクトの編集、削除で機能しますか?
最終的に、私は多くの調査を行いましたが、亀裂を埋め、このことを本当に理解するために助けを求めています. これは一般的な使用例であり、多くのユーザーが以前に使用したことがあると確信しています。
編集:
この質問は間接的に私の答えのように見えますが、まだわかりません。これからも様子を見ながらテストしていきたいと思います。私が見つけたものを見てください。