Документы Django говорят в http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.QueryDict.iteritems, что QueryDict.iteritems()
использует ту же логику последнего значения, что и QueryDict.__getitem__()
, что означает, что если ключ имеет более одного значения, __getitem__()
возвращает последнее значение.
Допустим, print request.GET
выглядит так:
<QueryDict: {u'sex': [u'1'], u'status': [u'1', u'2', u'3', u'4']}>
Если я хочу получить строку типа sex=1&status=1&status=2&status=3&status=4
(стандартный HTTP GET), следующий код не даст желаемых результатов из-за поведения iteritems
, упомянутого выше:
mstring = []
for gk, gv in request.GET.iteritems():
mstring.append("%s=%s" % (gk, gv))
print "&".join(mstring)
Какой самый эффективный способ получить желаемый результат без особых циклов?
Привет.
[EDIT]
Я должен отметить, что я не прибегаю к QueryDict.urlencode()
, потому что в этом запросе есть несколько ключей. ПОЛУЧИТЕ, что я не хочу в строке. Я мог бы изменить строку и вывести эти key = value, но просто подумал, есть ли лучший способ сделать это. Я понимаю, что эта информация должна была быть явно упомянута.