Feature: Update Pin via drf-api

This commit is contained in:
winkidney
2019-02-21 15:12:37 +08:00
parent da8bac1491
commit 9741f0311a
3 changed files with 6 additions and 4 deletions

View File

@@ -97,6 +97,7 @@ class PinSerializer(serializers.HyperlinkedModelSerializer):
tags = TagSerializer( tags = TagSerializer(
many=True, many=True,
source="tag_list", source="tag_list",
required=False,
) )
image = ImageSerializer(required=False, read_only=True) image = ImageSerializer(required=False, read_only=True)
image_by_id = serializers.PrimaryKeyRelatedField( image_by_id = serializers.PrimaryKeyRelatedField(
@@ -122,5 +123,6 @@ class PinSerializer(serializers.HyperlinkedModelSerializer):
tags = validated_data.pop('tag_list') tags = validated_data.pop('tag_list')
if tags: if tags:
instance.tags.set(*tags) instance.tags.set(*tags)
validated_data.pop('image_id') # change for image-id is not allowed
validated_data.pop('image_by_id', None)
return super(PinSerializer, self).update(instance, validated_data) return super(PinSerializer, self).update(instance, validated_data)

View File

@@ -68,7 +68,7 @@ function getPinData(pinId) {
function deletePinData(pinId) { function deletePinData(pinId) {
var apiUrl = '/api/v1/pin/'+pinId+'/?format=json'; var apiUrl = API_BASE + 'pins/' +pinId + '/?format=json';
return $.ajax(apiUrl, { return $.ajax(apiUrl, {
type: 'DELETE' type: 'DELETE'
}); });

View File

@@ -137,13 +137,13 @@ $(window).load(function() {
$(this).off('click'); $(this).off('click');
$(this).addClass('disabled'); $(this).addClass('disabled');
if (editedPin) { if (editedPin) {
var apiUrl = '/api/v1/pin/'+editedPin.id+'/?format=json'; var apiUrl = API_BASE + 'pins/' + editedPin.id + '/?format=json';
var data = { var data = {
description: $('#pin-form-description').val(), description: $('#pin-form-description').val(),
tags: cleanTags($('#pin-form-tags').val()) tags: cleanTags($('#pin-form-tags').val())
} }
var promise = $.ajax({ var promise = $.ajax({
type: "put", type: "patch",
url: apiUrl, url: apiUrl,
contentType: 'application/json', contentType: 'application/json',
data: JSON.stringify(data) data: JSON.stringify(data)