Django request.GET [] не удалось сравнить строки - PullRequest
0 голосов
/ 17 февраля 2012

Вот мой фрагмент кода из функции просмотра в django-

    dir = ''
    if (''+request.GET['dir']) == 'U':
      dir = 'U'
      elif (''+request.GET['dir']) == 'D':
      dir = 'D'

Но когда я проверяю, есть ли dir == 'D' или dir == 'U', сравнение не удается. Например, следующий код не выполняется (то же самое для сравнения с 'U')

    if dir == 'D':
      user_voted.vote = 'D'
      obj.score -= 2
      user_voted.save()
      obj.save()

Я чувствую, что dir не установлен на «U» или «D». Я даже попытался установить dir = request.GET ['dir'], который должен установить для него значение 'U' или 'D', но сравнение все равно не удалось. Может кто-нибудь сказать мне, если request.GET возвращает не строковое или строковое сопоставление с символами, это вызывает или я неправильно его установил или что.

Спасибо, что заглянули в это.

1 Ответ

0 голосов
/ 17 февраля 2012

Я не уверен, почему вы объединяете строки и переназначаете переменные. Попробуйте упростить это:

dir = request.GET.get('dir', None)
if dir == "U":
    ...
elif dir =="D":
    ...

Если это все еще не работает, попробуйте напечатать словарь request.GET, чтобы увидеть, действительно ли передается параметр dir (должен быть)

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