2011-10-13 5 views
1

단어를 입력하고 아약스를 통해 페이지에 표시하려고합니다. 거기에 내가 부족 간단하게 뭔가 ... 그래서 jQuery로이 같은 정보를 보내고있다 장고 덤프 JSON 데이터

:

$.ajax({ 
url: url, 
type:"POST", 
data:{'word': word}, 
success: function(data){ 
     //do something 
} 
}); 

와 정보가보기에 가져오고 DB에 저장된다.

def add_word(request, lecture_id): 
    l = get_object_or_404(Lecture, pk=lecture_id) 
    if request.method == "POST": 
     #see if there is a value with p 
     if request.POST.has_key('word') and request.POST['word'] != "": 
      success = {} 
      try: 
       oldWord = l.post_set.get(word=request.POST['word']) 
      except: 
       newWord = l.post_set.create(word=request.POST['word'], count = 1) 
       success = {'new': str(newWord.word), 'count': str(newWord.count)} 
      else: 
       oldWord.count += 1 
       oldWord.save() 
       success = {'old': str(oldWord.word), 'count': str(oldWord.count)} 
      return HttpResponse(json.dumps(success), mimetype="application/javascript") 
    return HttpResponse(reverse('post.views.lecture_display', args=(l.id,))) 

임 500 오류가 내 생각이 무엇을 실패하는 것 것은 [하나]라는 것이다, 역 추적을 보지 않고 ...

[13/Oct/2011 15:14:48] "POST /lecture/3/add HTTP/1.1" 500 66975 
+2

그 500 오류는 흔적입니다. 브라우저에서 해당 URL을 방문하여 해당 URL을 확인해야합니다. –

+1

전체보기도 게시해야합니다. –

답변

2

: 나는 새로운 단어를 반환 할 때 문제가 발생합니다 :

# A) This path is not resolving correctly (see named-URLs in Django's docs) 
reverse('post.views.lecture_display', args=(l.id,)) 

# B) This word has unicode data, which can't simply be passed to ``str`` 
str(oldWord.word) 

브라우저에서 URL을 직접 열면 기본 Django 추적, 500보기가 표시됩니다.

+1

@captDaylight - 결국 예외가 발생 했습니까? – orokusaki

1

필자는 특정 수정 프로그램을 디버깅하는 방법을 배워야한다고 생각합니다.

  1. 게시물 데이터없이 해당 URL을 열어 보거나 구문 또는 이름 오류가 있는지 확인하십시오. 문제가 지속되면
  2. , 뷰에서 다음 줄을 삽입, ipdb 또는 pudb 패키지를 사용하여 코드 내부에 무슨 일 분석 :

    데프 MYVIEW (요청, ID) : 수입 ipdb; ipdb.set_trace()

Chrome 개발자 도구 또는 방화범을 끌면 서버의 출력 내용과 열리는 URL을 확인할 수 있습니다. 또한 Django Debug ToolbarWerkzeug을 살펴보십시오. 디버그 도구 모음에는 렌더링 된 모든 템플릿과 모든 로컬 변수가 표시됩니다. Werkzeug는 브라우저에서 바로 호출 스택의 모든 위치에 디버그 셸을 제공합니다.