Привет, у меня spa-приложение, к каждому посту есть комментарии, вот такой json стандартного коммента:
{
"comments_text": "adfasdfasdf",
"comments_post": {
"id": 18,
"title": "asdfasdf",
"image": null,
"height_field": 0,
"width_field": 0,
"content": "asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf asdfasdf vv",
"check": true,
"updated": "2016-05-25 в 18:13",
"timestamp": "2016-05-25 в 18:13",
"user": {
"id": 1,
"password": "pbkdf2_sha256$24000$kSUmB51QpUSi$yWJZJt539Mj7+TLGz1tS+uIMk9dHs766opPlw8FEX0E=",
"last_login": "2016-05-27 в 16:39",
"is_superuser": true,
"username": "test",
"first_name": "",
"last_name": "",
"email": "test@gmail.com",
"is_staff": true,
"is_active": true,
"date_joined": "2016-05-25 в 10:33",
"groups": [],
"user_permissions": []
}
},
Контроллер:
var myApp = angular.module('myApp',['ui.bootstrap']);
myApp.run(function($http) {
$http.defaults.xsrfCookieName = 'csrftoken';
$http.defaults.xsrfHeaderName = 'X-CSRFToken';
});
myApp.controller('PostsListController', ['$scope','$http',function($scope,$http) {
$http.get('/api/v1/posts/').success(function (data) {
$scope.posts = data;
$scope.filteredPosts = [];
$scope.currentPage = 1;
$scope.numPerPage = 5;
$scope.maxSize = 5;
$scope.checked = 0;
$scope.numPages = function () {
return Math.ceil($scope.posts.length / $scope.numPerPage);
};
$scope.$watch('currentPage + numPerPage', function() {
var begin = (($scope.currentPage - 1) * $scope.numPerPage);
var end = begin + $scope.numPerPage;
$scope.filteredPosts = $scope.posts.slice(begin, end);
});
});
$scope.deletePost = function(post) {
$scope.confirm = confirm('Хотите удалить статью?');
if($scope.confirm){
$http.delete('/api/v1/posts/'+ post.id + '/');
$scope.filteredPosts.splice($scope.filteredPosts.indexOf(post), 1);
$scope.posts.splice($scope.posts.indexOf(post), 1);
}
};
$http.post('/posts/check_login/').success(function(data){
$scope.user = data;
});
$http.get('/api/v1/comments/').success(function (data) {
$scope.comments = data;
});
$scope.postComment = function(comment) {
$http.post("/api/v1/comments/", {'comments_text':comment}).success(function(data, status) {
})
};
$scope.deleteComment = function(comment) {
$http.delete('/api/v1/comments/'+ comment.id + '/');
$scope.comments.splice($scope.comments.indexOf(comment), 1);
};
$scope.addComment = function(data){
$http.post('/api/v1/comments/')
}
}]);
так вот не совсем понятно как отправить объект поста, подскажите пожалуйста. Фид как у инстаграма в версии для ПК (instagram.com)
Переписал post запрос, но все ровно не работает
:
$scope.postComment = function(comment, post) {
var json = JSON.stringify({
'comments_text':comment,
'comments_post': post});
alert(json);
$http.post("/api/v1/comments/", json).success(function(data, status) {
})
};
такая ошибка:
IntegrityError at /api/v1/comments/
null value in column "comments_post_id" violates not-null constraint
DETAIL: Failing row contains (124, asdfsafd, 1, 2016-05-27 21:48:01.332397+00, null).