Найти - Пользователи
Полная версия: Cms django. Словарь передан в функцию. Почему невозможно обратиться по ключу, но можно получить длину словаря и конвертировать его в строку?
Начало » Django » Cms django. Словарь передан в функцию. Почему невозможно обратиться по ключу, но можно получить длину словаря и конвертировать его в строку?
1
lenivaya10001
передаю в шаблон

len(x) показывает длину
str(x) показывает весь словарь как строку
ux=x["ux_golova"] #выдает KeyError

len(x)=200 str(x)={'uy_r_ruka_4': ‘1.0’, ‘ux_r_predplecho’: ‘1.0’, ‘uy_camera’: ‘1.0’, ‘r_predplecho’: 544.0, ‘ux_taz’: ‘1.0’, ‘wirina_viski’: ‘1.0’, ‘sdvig_cheljust’: ‘1.0’, ‘sgib_l_ruka_4’: ‘1.0’, ‘uy_l_ruka_2’: ‘1.0’, ‘sgib_l_noga_2’: ‘1.0’, ‘sgib_r_noga_3’: ‘1.0’, ‘uy_golova’: ‘1.0’, ‘uz_golova’: ‘1.0’, ‘ux_r_noga_1’: ‘1.0’, ‘uz_r_stopa’: ‘1.0’, ‘uy_l_golen’: ‘1.0’, ‘zubbl_rot’: ‘1.0’, ‘uz_l_ruka_1’: ‘1.0’, ‘vblsota_viski’: ‘1.0’, ‘uy_l_noga_1’: ‘1.0’, ‘uy_r_predplecho’: ‘1.0’, ‘uz_l_ruka_5’: ‘1.0’, ‘uz_r_noga_3’: ‘1.0’, ‘sgib_r_noga_2’: ‘1.0’, ‘vniz_skulbl’: ‘1.0’, ‘uy_weja’: ‘1.0’, ‘uy_r_kljuchica’: ‘1.0’, ‘ux_r_ruka_3’: ‘1.0’, ‘ux_r_ruka_2’: ‘1.0’, ‘sgib_l_ruka_1’: ‘1.0’, ‘glaza’: 68.0, ‘ux_spina’: ‘1.0’, ‘vniz_rot’: ‘1.0’, ‘ux_r_noga_4’: ‘1.0’, ‘d_otv_uwi’: ‘1.0’, ‘sgib_r_ruka_4’: ‘1.0’, ‘weja’: 272.0, ‘uy_spina_verx’: ‘1.0’, ‘ux_l_kist’: ‘1.0’, ‘l_stopa’: 204.0, ‘sgib_l_ruka_5’: ‘1.0’, ‘l_plecho’: 544.0, ‘uz_r_kljuchica’: ‘1.0’, ‘uy_weja_verx’: ‘1.0’, ‘uy_l_stopa’: ‘1.0’, ‘wirina_cheljust’: ‘1.0’, ‘vverx_makuwka’: ‘1.0’, ‘uz_l_noga_1’: ‘1.0’, ‘ux_r_noga_3’: ‘1.0’, ‘ux_l_noga_3’: ‘1.0’, ‘r_kist’: 136.0, ‘uz_r_ruka_5’: ‘1.0’, ‘uy_l_bedro’: ‘1.0’, ‘ux_l_golen’: ‘1.0’, ‘doy_perespektiva’: ‘1.0’, ‘uz_l_golen’: ‘1.0’, ‘sgib_l_noga_3’: ‘1.0’, ‘ux_l_ruka_5’: ‘1.0’, ‘uz_camera’: ‘1.0’, ‘ux_l_noga_5’: ‘1.0’, ‘uz_l_noga_3’: ‘1.0’, ‘l_kljuchica’: 204.0, ‘uy_spina’: ‘1.0’, ‘uz_l_plecho’: ‘1.0’, ‘uz_r_ruka_3’: ‘1.0’, ‘ux_l_ruka_3’: ‘1.0’, ‘uz_l_kljuchica’: ‘1.0’, ‘uz_l_noga_5’: ‘1.0’, ‘uz_r_noga_1’: ‘1.0’, ‘ux_l_ruka_2’: ‘1.0’, ‘sgib_r_ruka_3’: ‘1.0’, ‘ux_r_ruka_1’: ‘1.0’, ‘ux_r_ruka_5’: ‘1.0’, ‘uy_taz’: ‘1.0’, ‘vblsota_makuwka’: ‘1.0’, ‘sgib_l_noga_5’: ‘1.0’, ‘vpered_cheljust’: ‘1.0’, ‘ux_weja’: ‘1.0’, ‘ux_r_kljuchica’: ‘1.0’, ‘ux_weja_niz’: ‘1.0’, ‘vverx_lob’: ‘1.0’, ‘uy_l_plecho’: ‘1.0’, ‘uz_r_noga_5’: ‘1.0’, ‘sgib_l_ruka_3’: ‘1.0’, ‘l_golen’: 680.0, ‘uz_spina_verx’: ‘1.0’, ‘uz_l_ruka_4’: ‘1.0’, ‘r_golen’: 680.0, ‘wirina_lob’: ‘1.0’, ‘uy_r_noga_2’: ‘1.0’, ‘uy_r_ruka_5’: ‘1.0’, ‘wirina_rot’: ‘1.0’, ‘uz_l_ruka_3’: ‘1.0’, ‘uz_taz’: ‘1.0’, ‘uy_l_kljuchica’: ‘1.0’, ‘ux_r_noga_2’: ‘1.0’, ‘r_bedro’: 680.0, ‘ux_l_noga_2’: ‘1.0’, ‘ux_l_stopa’: ‘1.0’, ‘ux_l_kljuchica’: ‘1.0’, ‘sgib_r_noga_4’: ‘1.0’, ‘otkrblt_rot_cheljust’: ‘1.0’, ‘sgib_r_ruka_2’: ‘1.0’, ‘uy_l_noga_3’: ‘1.0’, ‘uy_weja_niz’: ‘1.0’, ‘ux_r_kist’: ‘1.0’, ‘sgib_r_noga_5’: ‘1.0’, ‘uy_r_noga_4’: ‘1.0’, ‘uy_r_bedro’: ‘1.0’, ‘uz_r_noga_4’: ‘1.0’, ‘uz_weja_niz’: ‘1.0’, ‘ux_l_noga_1’: ‘1.0’, ‘uz_l_noga_2’: ‘1.0’, ‘sgib_r_ruka_1’: ‘1.0’, ‘uz_r_bedro’: ‘1.0’, ‘uz_r_kist’: ‘1.0’, ‘nazad_skulbl’: ‘1.0’, ‘uz_r_ruka_4’: ‘1.0’, ‘nazad_uwi’: ‘1.0’, ‘wirina_nos’: ‘1.0’, ‘l_bedro’: 680.0, ‘ux_r_noga_5’: ‘1.0’, ‘uz_l_noga_4’: ‘1.0’, ‘ux_golova’: ‘1.0’, ‘vblsota_lob’: ‘1.0’, ‘ux_l_predplecho’: ‘1.0’, ‘wirina_skulbl’: ‘1.0’, ‘uz_r_predplecho’: ‘1.0’, ‘sgib_l_noga_1’: ‘1.0’, ‘vblsota_nos’: ‘1.0’, ‘sgib_l_ruka_2’: ‘1.0’, ‘ux_spina_niz’: ‘1.0’, ‘vverx_viski’: ‘1.0’, ‘r_plecho’: 544.0, ‘uz_r_ruka_1’: ‘1.0’, ‘jamochka_cheljust’: ‘1.0’, ‘ux_r_stopa’: ‘1.0’, ‘uz_l_ruka_2’: ‘1.0’, ‘ux_r_bedro’: ‘1.0’, ‘dox_perespektiva’: ‘1.0’, ‘r_kljuchica’: 204.0, ‘uz_l_predplecho’: ‘1.0’, ‘uy_r_noga_5’: ‘1.0’, ‘vverx_zatbllok’: ‘1.0’, ‘uy_l_noga_5’: ‘1.0’, ‘uy_r_plecho’: ‘1.0’, ‘dlina_zatbllok’: ‘1.0’, ‘uz_r_golen’: ‘1.0’, ‘uz_weja_verx’: ‘1.0’, ‘uy_l_predplecho’: ‘1.0’, ‘sgib_l_noga_4’: ‘1.0’, ‘uy_spina_niz’: ‘1.0’, ‘uy_r_ruka_1’: ‘1.0’, ‘uz_spina’: ‘1.0’, ‘l_predplecho’: 544.0, ‘uy_r_noga_3’: ‘1.0’, ‘uy_r_ruka_2’: ‘1.0’, ‘ux_l_ruka_4’: ‘1.0’, ‘nazad_zatbllok’: ‘1.0’, ‘vniz_nos’: ‘1.0’, ‘uy_r_golen’: ‘1.0’, ‘uz_l_kist’: ‘1.0’, ‘vniz_cheljust’: ‘1.0’, ‘r_stopa’: 204.0, ‘uz_r_ruka_2’: ‘1.0’, ‘ux_l_plecho’: ‘1.0’, ‘uy_l_ruka_1’: ‘1.0’, ‘uz_spina_niz’: ‘1.0’, ‘sgib_r_ruka_5’: ‘1.0’, ‘uz_l_bedro’: ‘1.0’, ‘uy_r_kist’: ‘1.0’, ‘uy_r_noga_1’: ‘1.0’, ‘ux_l_ruka_1’: ‘1.0’, ‘uy_r_stopa’: ‘1.0’, ‘uz_weja’: ‘1.0’, ‘uy_r_ruka_3’: ‘1.0’, ‘ux_l_bedro’: ‘1.0’, ‘ux_r_plecho’: ‘1.0’, ‘uz_r_plecho’: ‘1.0’, ‘sgib_r_noga_1’: ‘1.0’, ‘uy_l_noga_4’: ‘1.0’, ‘uy_l_ruka_3’: ‘1.0’, ‘uz_l_stopa’: ‘1.0’, ‘wirina_makuwka’: ‘1.0’, ‘vverx_uwi’: ‘1.0’, ‘l_kist’: 136.0, ‘uz_r_noga_2’: ‘1.0’, ‘spina’: 680.0, ‘uy_l_ruka_5’: ‘1.0’, ‘uy_l_noga_2’: ‘1.0’, ‘ux_l_noga_4’: ‘1.0’, ‘uy_l_kist’: ‘1.0’, ‘taz’: 136.0, ‘ux_weja_verx’: ‘1.0’, ‘uy_l_ruka_4’: ‘1.0’, ‘ux_r_golen’: ‘1.0’, ‘ux_spina_verx’: ‘1.0’, ‘doz_perespektiva’: ‘1.0’, ‘ux_r_ruka_4’: ‘1.0’, ‘ux_camera’: ‘1.0’}
FishHook
Где выдает то? По тексту можно понять, что Вы в шаблоне пытаетесь к словарю по ключу обратиться с помощью квадратных скобок. Если это так, то Вы не правы, через точку надо.
lenivaya10001
FishHook
Где выдает то? По тексту можно понять, что Вы в шаблоне пытаетесь к словарю по ключу обратиться с помощью квадратных скобок. Если это так, то Вы не правы, через точку надо.

подробнее так происходит:
-я получаю request из шаблона в представление
def func1(request,...):
-внутри представления func1 делаю изменяемую копию request.GET как написано в книге
x=request.GET.copy()
-потом отправляю x во внешнюю функцию def func2(x):
rezultat=func2(x)
Беда в том, что внутри func1 я могу обращаться к элементам x по ключу, а после передачи x в func2 я не могу обращаться к элементам x, по ключу , но могу узнать его длину len(x) и могу сделать его строкой и убедиться что x не пустой str(x), а так же могу получить type(x)
постоянно выдает KeyError
FishHook
Бред какой-то, показывай код.
lenivaya10001
вот часть кода участвующая в этом, коментарии убраны некоторые и т.п. Свиду все чисто.
FishHook
Это вообще что?

lenivaya10001
FishHook
Это вообще что?

а что не так?
paraman - представление принимающее request
остальные функции находятся в другом файле и импортируются.
x передается в нужное место , а
ux=x[ключ]
выдает ошибку KeyError
FishHook
lenivaya10001
а что не так?
Всё не так
x=request.GET.copy()
x=list(x.items())
x=dict(x)
def svgmaker(x):
	svg1=""
	svg1=paramansvgbonemaker(x)
и далее по тексту
это бред натуральный стопроцентный
Беда в том, что внутри func1 я могу обращаться к элементам x по ключу
Беда в том, что ты не понимаешь, что ты делаешь.
Дорогой, не стоит меня обвинят в незнании синтаксиса питона, я то как раз с ним знаком, а вот у тебя серьезные проблемы: ты бредишь.
lenivaya10001
FishHook
так и не нашел в чем баг, но удалось наладить работу, поставив затычку на первый заход во второй функции. Теперь первый запуск проходит в холостую, а потом все работает в штатном режиме.

затычка такая:

def func2(x):
    #функция где ошибка вылезает в первом заходе
    if x: pass
    else: return "первый запуск"
    #текст функции
    return svg
def func1(request):
    #представление которое принимает данные формы из шаблона temp.html
    x=request.GET.copy()
    svg=func2(x)
    return render_to_response('temp.html', locals(),mimetype="text/html")

В таком виде работает, но так и не понятно почему первое обращение к представлению, выдает KeyError внутри func2
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB