JQuery перезвонить в шаблоне Django - PullRequest
0 голосов
/ 13 ноября 2011

В моем шаблоне django я использую метод $ .ajax jquery, где url указывает на одно из моих представлений django.Теперь, как я могу использовать render_to_response в этом представлении django?

def document_status(request):
    if request.method == u'GET':        
        GET = request.GET
        if GET.has_key(u'doc_type') and GET.has_key(u'iqama_no'):
            pass
    json_response = simplejson.dumps({'res':True})
    #return HttpResponse(json_response, mimetype='application/json')
    return render_to_response('tracking/index.html' ) 

1 Ответ

1 голос
/ 13 ноября 2011

AJAX не используется для перенаправления, он используется для асинхронного получения данных с сервера.

Но если вы действительно хотите перенаправить, вместо рендеринга шаблона (который не будет работать), верните HttpResponse, содержащий URL-адрес, на который вы хотите перенаправить, а в функции AJAX success используйте возвращенные данные перенаправить из JavaScript.

Таким образом, код javascipt будет выглядеть примерно так:

$.ajax({
    url: "<your url>",
    data: <whatever data you want to send>,
    success: function(new_url){
        window.location = new_url;
    }
});

И обработчик Django:

def document_status(request):
    # Do stuff...
    return "http://url/you/wand/to/redirect/to"

Редактировать

Чтобы ответить на вопрос в комментарии, это один из способов сделать это:

Первый HTML-шаблон для страницы A:

<form action="http://url/of/page/B">
    <select name="value" onchange="this.form.submit();">
        <option value="1">First option</option>
        <option value="2">Second option</option>
    </select>
</form>

Код представления для страницы A не должен изменяться, поэтому представление для страницы B:

def page_b_view(request):
    value = request.GET.get('value', '0')  # '0' is default value if not found
    if value = '1':
        # Add some context variables here
    elif value == '2':
        # Add some other context variables here
    return render_to_template(...)

Надеемся, это даст вам подсказки о том, как это сделать или что искать.

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