2011-01-08 2 views
0

У меня сложнее всего то, что должно быть супер простым. Я не могу захватить переданные параметры в django.Django: параметры захвата

В браузере набираю:

http://localhost:8000/mysite/getst/?term=hello

Мой шаблон URL является:

(г '^ MySite/getst/$', '') tube.views.getsearchterms

На мой взгляд

Защиту getsearchterms (запрос):

my_term = some_way_to_get_term 

return HttpResponse(my_term) 

В этом случае он должен вернуть «привет». Я вызываю представление, но пустое значение возвращается мне. Я пробовал различные формы GET ....

Что должно быть some_way_to_get_term?

ответ

3

параметры GET могут быть доступы как словари:

my_term = request.GET['term'] 
my_term = request.GET.get('term', 'my default term') 
+0

Ну, что работал :) Я думал, что я попробовал это, но я не думаю,;) – dkgirl

+0

На самом деле, я получаю error, UnicodeDecodeError, с некоторыми параметрами, например: http: // localhost: 8000/my_site/getst /? term = telet. Вы знаете, как это исправить? – dkgirl

+0

можете ли вы разместить свой код, например, на http://pastebin.com/? –

0

Используя произвольные аргументы после? а затем ловить их request.GET ['term'], вам не хватает лучших функций модуля URL-адресов Django: последовательная схема URL-адресов

Если в этом URL-вызове всегда присутствует термин «term», он должен иметь смысл ваше приложение, поэтому ваше правило URL может выглядеть следующим образом:

(r'^mysite/getst/(?P<term>[a-z-.]+)/', 'tube.views.getsearchterms') 

это означает, что:

  1. что у вас есть более SEO-дружественные и стабильные схемы URL (не член = это & д? = внутри)
  2. Что вы можете поймать аргумент легко на ваш взгляд:

Как это

def getsearchterms(request,term): 
    #do wahtever you want with var term 
    print term 
Смежные вопросы