Передача параметра в Django с помощью AJAX - PullRequest
1 голос
/ 26 июня 2011

Я пытаюсь передать параметры в представление Django, но я не могу решить, каков наилучший способ сделать это.

Я делаю AJAX-вызов, и мой код javascript

url = "/review/flag/code/"+ code +"/type/" + type + "/content/" + content + "/";
$.getJSON(url, somefunction);

Соответствующий URL для этого вызова

(r'^rate/code/(?P<code>[-\w]+)/type/(?P<type>[-\w]+)/content/(?P<content>[-\w]+)/$', 'project.views.flag_review'),

И я могу получить параметры, на мой взгляд, такие, что

def rate_review(request,code,type,content):
    ....

Мой вопрос, потому что content исходит от textarea это может включать много escape-символов, и передача его, как указано выше, вызывает проблемы из-за регулярного выражения.

Есть ли способ, если я передам такие параметры, как www.xx.com/review/rate?code=1&type=2&content= sdfafdkaposdfkapskdf ...?

Спасибо

Ответы [ 2 ]

4 голосов
/ 26 июня 2011

Если переменная content вводится через поле ввода textarea в форме, вам, вероятно, следует использовать метод HTTP POST для отправки данных.Вы получите что-то вроде:

 url = "/review/flag/code/"+ code +"/type/" + type;
 $.post(url, {'content': content}, somefunction, 'html');

 (r'^rate/code/(?P<code>[-\w]+)/type/(?P<type>[-\w]+)/$', 'project.views.flag_review'),

def rate_review(request,code,type):
    content = request.POST['content']
    ...
4 голосов
/ 26 июня 2011

Конечно, в вашей функции rate_review вы можете получить доступ к request.GET и получить доступ к этим параметрам:

/rate/code/?foo=bar

def rate_review(request):
    request.GET['foo']
...