【发布时间】:2019-11-29 02:43:46
【问题描述】:
我正在尝试使用 ajax 更新用户字段。我使用rest-framework为用户模型创建了一个APIView。用户模型包含一个名为“favorite_entries”的多对多字段,下面的代码我需要事先在 JS 中获取所有字段数据并附加新数据并调用 put 请求,这对我来说似乎是错误的。
views.py:
class CurrentAuthorView(APIView):
permission_classes = (permissions.IsAuthenticated, )
http_method_names = ['get', 'put']
def put(self, request):
serializer = AuthorSerializer(request.user, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get(self, request):
serializer = AuthorSerializer(request.user)
return Response(serializer.data)
javascript:
$("#favorite_entry-btn").on("click", function () {
let entry_id = $(this).attr("data-entry-id");
$.ajax({
url: '/api/v1/author/',
type: 'PUT',
data: "favorite_entries=3",
success: function (data) {
alert('success');
},
error: function (err) {
console.log(err);
}
});
});
我希望在字段中附加主键“3”的条目,但它会删除所有以前的数据。
【问题讨论】:
标签: django django-rest-framework