내 앱의 REST 유형 JSON API를 빌드하려고하는데 테스트하는 동안 오류가 발생하여 계속 오류가 발생합니다. 내 페이지의 URL.TypeError : 'str'객체를 호출 할 수 없습니다. (Django/Python)
URLconf :
url(r'^calendar/(?P<id>\d+)/(?P<year>\d+)/(?P<month>\d+)/$', 'calendar_resource'),
views.py :
def json_view(func):
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
return HttpResponse(json.dumps(result), mimetype="text/json")
return wrapper
@json_view
def calendar_resource(request, id, month, year):
if id != request.user.id:
return HttpResponseForbidden()
thisMonthEnd = datetime.datetime(year, month, calendar.mdays[month])
thisMonthStart = datetime.datetime(year, month, 1)
l = Lesson.objects.filter(student__teacher = request.user).filter(startDate__lte=thisMonthEnd).filter(endDate__gte=thisMonthStart)
lessonList = list(l)
return lessonList
나는 내가 그것을 더 많은 작업을 수행 할 수있는 목록에 검색어 세트 결과를 변환하고 있습니다 (즉, 삽입 기록 이는 쿼리에서 반환되지 않을 것입니다.) fullCalendar로 처리하기 위해 목록을 JSON으로 다시 전달하기 전에.
ETA :이 구현을 사용하게 된 original question입니다.
역 추적 :
Environment:
Request Method: GET
Request URL: http://localhost:5678/calendar/1/2012/5/
Django Version: 1.3.1
Python Version: 2.6.5
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.humanize',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'lessons',
'registration']
Installed Middleware:
('django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Traceback:
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
Exception Type: TypeError at /calendar/1/2012/5/
Exception Value: 'str' object is not callable
당신이 점점 오류를 추가 할 수 있습니까? – marianobianchi
요청 방법 : \t GET 요청 URL : \t에 http : // 알파 : 5678/달력/2천12분의 1/5/ 장고 버전 : \t 1.3.1 예외 유형 : \t 형식 오류 예외 값 : \t 'str'객체를 호출 할 수 없습니다. –
URLConf에서 "calender_resource"대신 "views.calender_resource"(어쩌면 응용 프로그램 이름이 붙습니다) 여야합니다. –