Не могу передать массив в Django REST - PullRequest
0 голосов
/ 25 июня 2019

У меня есть конечная точка REST.Когда я получаю доступ к этой конечной точке через графический интерфейс DRF, я могу вручную ввести свои данные, и она успешно работает.Моя модель выглядит следующим образом:

class Post(models.Model):
    title       = models.CharField(max_length=100, null=False)
    content     = HTMLField()
    created_at  = models.DateField(auto_now_add=True)
    authors     = models.ManyToManyField(User)

Мой сериализатор и представление выглядит следующим образом:

class CreatePostSerializer(CreateAPIView):
    serializer_class = PostSerializer

class PostSerializer(serializers.ModelSerializer):

    class Meta:
        model = Post
        fields = ('title', 'content', 'authors')

Когда я на самом деле пытаюсь передать свои данные через Ajax на конечную точку, вот так:

$.ajax({
    type: 'POST',
    url: '/api/save-post/',
    data: {
    "csrfmiddlewaretoken": getCookie('csrftoken'),
    "title": "dasf",
    "desct": "dasf",
    "content": "fdasf",
    "authors": [1,2]
    },
    success: function (msg) {
        console.log(msg);
    }
});

Я получаю сообщение об ошибке: {"authors":["This list may not be empty."]} с отправкой полезной нагрузки:

title: dasf
desct: dasf
content: fdasf
authors[]: 1

Я попытался изменить contentType на application / json, я перепробовал почти всено похоже что ничего не работает.Как я могу сделать так, чтобы моя конечная точка понимала, что я посылаю?

1 Ответ

0 голосов
/ 25 июня 2019
var authors = [];
authors[0] = 1;
authors[1] = 2;

var arr = {
    "csrfmiddlewaretoken": getCookie('csrftoken'),
    "title": "dasf",
    "desct": "dasf",
    "content": "fdasf",
    "authors": authors
    };

$.ajax({
    url: '/api/save-post/',
    type: 'POST',
    data: arr,
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    success: function(msg) {
        alert(msg);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...