Django Rest Frameworkを使用してモデルを更新するにはどうすればよいですか?Django Rest Framework - model.ModelViewSetを使用してモデルを更新する
のfoo/models.py
class FooBar (models.Model):
title = models.CharField(max_length=255,null=False)
def __unicode__(self):
return self.title
のfoo/serializers.py
from rest_framework import serializers
from foo.models import FooBar
class FooBarSerializer(serializers.ModelSerializer):
id = serializers.ReadOnlyField()
class Meta:
model = FooBar
fields = ('id','title')
read_only_fields = ['id']
のfoo/views.py
from rest_framework import viewsets
from foo.models import FooBar
from foo.serializers import FooBarSerializer
class FooViewSet(viewsets.ModelViewSet):
queryset = FooBar.objects.order_by('id')
serializer_class = FooBarSerializer
:私は、次のモデル/シリアライザ/ビュー定義を持っています
私はこのプロジェクトで角度を使用しており、私は新しいレコードを作成することができます:
data = {'title':'New Foo Item'} $http.post(`/api/v1/foo/`, data);
レコードを更新するにはどうすればよいですか?次のコードでは、新しいレコードが作成されます。
data = {'title':'New Foo Item', 'id':1} $http.post(`/api/v1/foo/`, data)
Iは$http.put
と$http.patch
及び405 "メソッドが許可されていない" というエラーの両方の結果を用いて試みました。また、私は運で、URLにこのオブジェクトIDを使用して試してみました:
$http.post(`/api/v1/foo/${data.id}/`, data);
'put'または' patch'は、drfの完全更新または部分更新に使用されます。 –
ありがとうございます。元の 'patch'を使って405メソッドが許可されていないというエラーが発生しました。 – Codewise