首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将数组传递到Django REST

无法将数组传递到Django REST
EN

Stack Overflow用户
提问于 2019-06-26 03:24:48
回答 1查看 280关注 0票数 0

我有一个REST端点。当我通过DRF GUI访问这个端点时,我可以手动输入我的数据,它成功地工作了。我的模型是这样的:

代码语言:javascript
复制
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)

我的序列化程序和视图如下所示:

代码语言:javascript
复制
class CreatePostSerializer(CreateAPIView):
    serializer_class = PostSerializer

class PostSerializer(serializers.ModelSerializer):

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

当我实际尝试通过Ajax将数据提交到端点时,如下所示:

代码语言:javascript
复制
$.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."]} with a payload sending:

代码语言:javascript
复制
title: dasf
desct: dasf
content: fdasf
authors[]: 1

我已经尝试将应用程序更改为contentType /json,我几乎尝试了所有的方法,但似乎都不起作用。我如何才能使我的端点理解我发送的内容?

EN

回答 1

Stack Overflow用户

发布于 2019-06-26 03:32:04

代码语言:javascript
复制
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);
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56760773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档