등급 시스템을 설정 중이며 JSON 데이터를 장고보기로 활용하는 데 어려움을 겪고 있습니다. 최종 목표는 내 BlogSiteRating 모델로 평가를 저장하는 것입니다 :Django보기에서 JSON 데이터 사용
#models.py
class BlogSiteReview(models.Model):
blog_site = models.ForeignKey(BlogSite)
review_rating = models.IntegerField()
그러나, 나는 아직 확실히 그 시점에 아니에요. 내가 403 오류가 있었는데, 그 POST에서 올바르게 csrf 토큰을 사용하여 해결되었습니다. 이제 500 개의 오류가 서버에서 다시 전달됩니다.이 오류는 Chrome 콘솔에서 볼 수 있습니다.
EDIT : 마지막으로 오류를 발견했습니다. 2 개의 POST가 수행됩니다. 둘 다 MultiValueDictKeyError 오류가 발생합니다.
첫 번째 메시지는 "< QueryDict : {u'rating [rating]": [u'10 '], [csrfmiddlewaretoken]': [u '0468d70cfb6fc425a530d434f5a4c30a'], [rateid] u'rating ': [u'7는']}>
두 번째는 말한다 : < QueryDict "에서 찾을 수 없습니다 키 '평가'": {u'action '[U' ','u'idBox ': [u'7']}> "
다음은 내보기로 전달할 JSON입니다. 마지막으로, 여기
//JSON object being passed into views.py
$(".rating").jRating({
onSuccess : function(element,rate){
var rating = [
{ "id":element.id.replace('rating', ''), "rating":rate}
];
rating["csrfmiddlewaretoken"] = $('input[name=csrfmiddlewaretoken]').val();
alert("Passed id:" + element.id.replace('rating', '') + " and rating:" + rate);
//send post data to django view
$.post('/blogsearch/setrating/', {"rating":rating}, function(msg)
{
if(msg.error == "yes")
{console.log('Error Found: '+ msg.errorMsg);}
}, 'json');
},
onError : function(){
alert('Error : please retry again later, the server did not accept your submission.');
}
});
그리고 내가 내 views.py에있는 것입니다 :
또한#views.py
from django.http import HttpResponse
from django.utils import simplejson
def setrating(request):
if request.is_ajax():
if request.method == 'POST':
simplejson.loads(request.POST['rating'])
#data = 1 #Note: when I uncomment this line, and
#comment the above line, I don't get a 500 error
return HttpResponse("success")
, 나는이 예제에서 내 모델에서 아무것도 저장하려고하고 있지 않다 알고있다. 내보기에서 JSON 데이터를 가져올 수 있다면 아무 문제없이 JSON 데이터를 저장할 수 있어야합니다. 그러나 당신이 원한다면 답안에서 그 코드를 도울 수 있습니다.
내가 지금 몇 일 동안 게시물을보고 있었고,이 경로를 날 실망 이끈 사람 중 일부는 다음과 같습니다
internal server eroor 500 django when using simplejson.loads(request.raw_post_data)
Getting internal server error when trying to handle json in django
내가 가진 또한 simplejson 대신 json을 가져 오기 위해 시도했지만 동일한 결과를 얻습니다. 나는 request.raw_post_data도 사용하여 놀았지만 그 방법으로 서버 오류가 발생합니다. 내가 읽은 바로는 요구와 비슷해 보입니다. [ '등급'] 사용하는 것이 옳은가요? 나는 적어도 우리가 문제가 무엇인지 알아내는 데 도움이 할 수있는 몇 가지를 제안 할 수 있습니다
어떤 오류 메시지가 표시됩니까? 예를 들어 Chrome의 검사기 도구를 사용하여 응답을 볼 수 있습니다. 발생하는 오류에 대한 지침을 제공해야합니다. – bouke
또한 게시하는 데이터를 검사하십시오. JSON 인코딩, 또는 일반 formdata 인코딩입니까? – bouke
마지막으로 오류를 발견했습니다. "이고 CONTENT_TYPE은 'application/x-www-form-urlencoded입니다. charset = UTF-8 '유니 코드 객체를 반환하는 것처럼 보입니까? –
awwester