임 메신저 메소드 GET으로 그걸 얻기 위해 시도하는 상세보기에서 GET으로 변수 "segundos"를 얻으려고 노력 :방법 GET에 의한 변수가 DetailView의 장고에 들어갈 수
JS 파일 :
$(document).ready(function(){
var segundos=340;
console.log(segundos);
$.ajax({
data : {'segundos':segundos},
url : '/ajax/puzzle-1/',
type : 'GET',
});
});
views.py
class PuzzleView(DetailView):
model = Puzzle
template_name = 'puzzle.html'
def get (self,request,*args,**kwargs):
seconds = request.GET["segundos"]
self.object = self.get_object()
ranking = Ranking.objects.create(puzzle_id=self.object.id,usuario=self.request.user,segundos=seconds,puesto=89)
context = self.get_context_data(object=self.object)
return self.render_to_response(context)
class RankingView(ListView):
model = Ranking
template_name = 'ranking.html'
queryset = Ranking.objects.filter(puzzle_id=1).order_by('segundos')[:3]
class PuzzleAjaxView(TemplateView):
template_name = 'ranking.html'
는하지만 난 유명한 오류 "MultiValueDictKeyError"를 얻는다. 내가 같은 방법을 시도 할 경우 "GET"하지만 TemplateView으로, 변수 i를 얻을 수 있지만 DetailView
이런 경우에, 내 urls.py과 :
urlpatterns = patterns('puzzle.views',
url(r'^actividad/puzzle/(?P<slug>[-_\w]+)/$',PuzzleView.as_view(),name='puzzle'),
url(r'^ajax/puzzle-1/.*$', PuzzleAjaxView.as_view(),name='ajax'),
url(r'^ranking/.*$', RankingView.as_view(),name='ranking'),
)
'request.GET.get ('segundos ', False)'so 사용자가 GET 변수를 설정하지 않고 호출하면 응용 프로그램에서 예외가 발생하지 않습니다. 또한 변수 이름을 영어로 지정하는 것이 좋습니다. –
@ dan-klasson'get'의 목적 중 하나는 그것이 예외를 던지지 않도록하는 것입니다. 두 번째 인수가없는 경우의 기본값은'None'입니다. https://docs.python.org/2/library/stdtypes.html#dict.get –
오, 그래, 내 잘못이야. , Yuji'Tomita'Tomita @ –