Как использовать Httpresponse в Django при использовании Ajax - PullRequest
0 голосов
/ 30 июня 2011

Я использую это

def ajax_create( request ):
    if request.is_ajax():

            form = SourceForm()

            template = 'ajax_form.html'
            data = {
                'form': form,
            }
            return render_to_response( template, data,
                context_instance = RequestContext( request ) )

Я получаю эту ошибку

ajax_create didn't return an HttpResponse object

Ответы [ 3 ]

2 голосов
/ 30 июня 2011

Вы уверены, что ваш запрос является вызовом ajax?Это не похоже на это.Попробуйте:

if request.is_ajax():
...
else:
  # If the request is not an ajax call, it will return a 400 Error.
  return HttpResponseBadRequest()
1 голос
/ 30 июня 2011

Возможно, if request.is_ajax(): возвращает False, если это вся ваша функция просмотра?

Как правило, вы должны следовать этому шаблону при создании функций просмотра Django:

def my_view(request):
    if request.method == 'POST':
        form = MyForm(data=request.POST, files=request.FILES)
        if form.is_valid():
            # do something with form...
    else:
        initial = {...}
        form = MyForm(initial=initial)
    context = {'form':form, ...}
    return render_to_response('path/to/template.html', context, context_instance=RequestContext(request))
0 голосов
/ 30 июня 2011

Это не входит в вашу область "если". возвращается None

https://docs.djangoproject.com/en/1.3/ref/request-response/#django.http.HttpRequest.is_ajax

Проверьте ваш ajax-вызов и убедитесь, что он что-то возвращает в случае, если запрос не ajax

...