Bir Django görünümünde öğesine erişebilirsiniz request.GET['variablename']
, böylece görünümünüzde aşağıdaki gibi bir şey yapabilirsiniz:
myvar = request.GET['myvar']
Gerçek request.GET['myvar']
nesne türü:
<class 'django.http.QueryDict'>
Şimdi, aynı parametre adına sahip birden çok değişken geçirmek istiyorsanız, yani:
http://example.com/blah/?myvar=123&myvar=567
list
Parametre için bir python'un döndürülmesini istersiniz myvar
, sonra şöyle bir şey yapın:
for var in request.GET['myvar']:
print(var)
Ancak, yalnızca url'de geçen değeri almayı denediğinizde, yani yukarıdaki örnekte 567 elde edersiniz ve kabuktaki sonuç şöyle olur:
5
6
7
Bununla birlikte, bir baskı yaptığınızda request.GET
, bir list
ie varmış gibi görünür :
<QueryDict: {u'myvar': [u'123', u'567']}>
Tamam Güncelleme: Son değeri döndürmek için tasarlandı, benim kullanım durumum bir listeye ihtiyacım var.
django belgelerinden:
QueryDict. getitem (anahtar) Verilen anahtarın değerini döndürür. Anahtar birden fazla değere sahipse getitem () son değeri döndürür. Anahtar yoksa django.utils.datastructures.MultiValueDictKeyError'ı oluşturur. (Bu, Python'un standart KeyError'ının bir alt sınıfıdır, böylece KeyError'ı yakalamaya devam edebilirsiniz.
QueryDict.getlist (key) Verileri istenen anahtarla Python listesi olarak döndürür. Anahtar yoksa boş bir liste döndürür. Bir tür liste döndürmek garantilidir.
Güncelleme: Eğer django geliştiricinin bunu neden yaptığını bilen biri varsa lütfen bana bildirin, bir liste göstermek mantıksız görünüyor ve liste gibi davranmıyor. Pek pitonik değil!