我有一个REST端点。当我通过DRF GUI访问这个端点时,我可以手动输入我的数据,它成功地工作了。我的模型是这样的:
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."]} with a payload sending:
title: dasf
desct: dasf
content: fdasf
authors[]: 1我已经尝试将应用程序更改为contentType /json,我几乎尝试了所有的方法,但似乎都不起作用。我如何才能使我的端点理解我发送的内容?
发布于 2019-06-26 03:32:04
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);
}
});https://stackoverflow.com/questions/56760773
复制相似问题