Я предполагаю, что QueryDict
является подклассом встроенного dict
. Словари не имеют .iterkeys
(ни .itervalues
, ни .iteritems
) на python 3.x. Методы .keys
, .values
, .items
возвращают непосредственно итерируемый вид базового словаря, а не строят (возможно) дорогие списки.
Если вы хотите построить список из них, вы должны сделать это явно:
keys = list(request.POST.keys())
или более лаконично, вы можете просто передать Dict в list
, так как словари итерацию по умолчанию на ключи.
keys = list(request.POST)
Однако, вы можете позвонить сортируется непосредственно на итератора, так что это просто отлично:
sorted_keys = sorted(request.POST)
Ваша функция может быть переписана в виде:
def print_keys(request):
print('\n'.join(sorted(request.POST)))
И это должно работать на оба python 2.7 и 3.4.
Если ответ помог, вам следует подумать о том, чтобы дать любовь! – bgusach