Как мне написать представление Django, которое может вызываться функцией $ .getJSON () jQuery? - PullRequest
0 голосов
/ 19 января 2010

JavaScript:

$.getJSON('/jsonView', {
    tag: "userName",
    userName: 'zjm1126'
}, function (H) {
    if (H.result == "successName") {
        F.showOk(h.ok);
    } else {
        if (H.result == "existName") {
            F.showErr(h.userNameExist);
        }
    }
});

Представление:

def jsonView(request):
    # What would go here?

def json_view(request):
  import json
  username=request.GET.get('username')
  result='successName'
  if username:
    try:
      user=User.objects.get(username=username)
      result='existName'
    except User.DoesNotExist:
      pass
    return HttpResponse(json.dumps({'result': result}))

составляет 500 ОШИБКА ВНУТРЕННЕГО СЕРВЕРА.

почему ???

Ответы [ 3 ]

2 голосов
/ 19 января 2010

Я предлагаю вам пройтись по учебному пособию Джеймса Беннета по использованию AJAX с Django - он включает подробности о написании представлений, возвращающих JSON.

1 голос
/ 19 января 2010

Это относительно просто

def json_view(request):
  username=request.GET.get('username')
  result='successName'
  if username:
    try:
      user=User.objects.get(username=username)
      result='existName'
    except User.DoesNotExist:
      pass
    return HttpResponse(simplejson.dumps({'result': result}))
0 голосов
/ 19 января 2010

Все довольно просто:

  1. Получить данные GET из запроса. GET
  2. Делать вещи
  3. Возвращает ответ с mimetype application/javascript

1 и 2 похожи на любой другой вид. Если вы не знаете, как сделать 3, проверьте django.http.HttpResponse.__init__

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...