drf-generators の紹介
DRF を使ってると毎回 モデルごとの View, Serializer, urls 書いて面倒くさくないですか?
そんなときに drf-generators !
定義されているモデルの View, Serializer, urls を生成してくれます.
install
pip install drf-generators
usage
python manage.py generate {app} {options}
generate
コマンドに app名 と option を指定します.
オプションを指定しなければ serializers.py, views.py, urls.py が生成されます.
$ python manage.py generate articles
- writing serializers.py
- writing views.py
- writing urls.py
option を指定すると view や serializer だけを生成することもできます.
また option の --format
では view の フォーマットを指定できます.
例えば, 以下のような APIView
を継承したクラスで view を作成したい場合は --format apiView
,
ModelViewSet を使用したい場合は --format modelviewset
のように指定します.
format は 2019-12-04時点ではバグがあり正しく動きません 修正PRでてます
class ArticleAPIView(APIView):
def get(self, request, id, format=None):
try:
item = Article.objects.get(pk=id)
serializer = ArticleSerializer(item)
return Response(serializer.data)
except Article.DoesNotExist:
return Response(status=404)
def put(self, request, id, format=None):
try:
item = Article.objects.get(pk=id)
except Article.DoesNotExist:
return Response(status=404)
serializer = ArticleSerializer(item, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=400)
def delete(self, request, id, format=None):
try:
item = Article.objects.get(pk=id)
except Article.DoesNotExist:
return Response(status=404)
item.delete()
return Respon
テンプレートをカスタマイズしたい
drf を普段から使用している人は, カスタマイズした Serializer や ViewSet を使ってたりすると思います.
テンプレートを書き換えられる PR がでてるのでもうしばらく待ちましょう.
Author And Source
この問題について(drf-generators の紹介), 我々は、より多くの情報をここで見つけました https://qiita.com/fumuumuf/items/8c06e99646316f20bd4f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .