私は、POSTリクエストからデータを受け取り、関連するデータを出力するクラスベースのDjango REST APIを構築しようとしています。POSTリクエストの情報を必要とするDJANGO RESTをセットアップするにはどうすればよいですか?
私は、ユーザーがPOSTリクエスト(すなわちカリフォルニア州)を介して状態を供給します
State Building
California Golden Gate Bridge
New York Empire State
California TransAmerica
New York Brooklyn Bridge
、APIは(すなわち、ゴールデンゲートブリッジ、トランス)
適切な建物を返すべきDBに建物のリストを持っています私は、クラスがどのようにrequest.data ['state_id']に取り込まれているかを理解するのに苦労していると思います。 APIViewを使用する必要がありますか?非常に多くの質問!
これまでのところ、私はこれはこれは私のurl.pyである私のserializer.pyに
class BuildingSerializer(serializers.ModelSerializer):
class Meta:
model = BuildingRule
fields = ('building_name',)
ある
class BuildingViewSet(viewsets.ModelViewSet):
queryset = BuildingRule.objects.values('building_name').distinct()
serializer_class = BuildingSerializer
def post(self, request, *args, **kwargs):
queryset = BuildingRule.objects.filter(state_name=request.data['state_id'])
return Response(queryset.values_list('building_name', flat=True))
私view.pyでこれを持っている:
router.register(r'buildings', views.BuildingsViewSet, base_name='Building')
ビューセットでcreateメソッドをオーバーライドしてください。このリンクに従ってください。https://stackoverflow.com/questions/40999386/custom-function-which-performs-create-and-update-on-drf-modelviewset – amrit
オーバーライドビューセット内のメソッドを作成するのが正しい方法ではありません。 DRFとシリアライザでは、私の答えに記述されているようにFieldの 'required'属性だけを使用します。 –