Django

2010-12-05 7 views
39

'daki onay kutularından nasıl birden çok değer alabilirim? Bir liste olarak request.POST['xzy'] kullanarak çoklu seçim onay kutularını almak istiyorum. İşte benim model ve şablon kodum.Django

Benim Modeli

class Recommend(models.Model): 
    user=models.ForeignKey(User) 
    book=models.ForeignKey(BookModel) 
    friends=models.ManyToManyField(User, related_name="recommended") 

Benim Şablon

{% for friend in friends %} 

<input type="checkbox" name="recommendations" id="option{{friend.id}}" value={{friend.username}} /> 
<label for="option{{friend.id}}"><b>{{friend.username}}</b></label><br /> 

{% endfor %} 

My Kodu görüntüle İşte

if request.method == 'POST': 
    recommendations=request.POST['recommendations'] 

istiyorum 'recom tüm arkadaş kimliklerini içeren bir liste olmak için '' managing '' yazıyor ama burada sadece üzerine yazılıyor ve sadece son döngü iterasyonunda atanan değeri içeriyor. Bu sorunu nasıl çözebilirim. Umutsuzca yardıma ihtiyacım var. Teşekkür ederim.

cevap

93
request.POST.getlist('recommendations') 
+1

Teşekkür adam sadece deli gitmekten beni kurtardı @! – JREAM

+0

@KiranRuthR şablonda getlist kullanmıyorsunuz, view.py'de kullanıyorsunuz. –

+0

günümü kurtardı! : 3 –

1
if not request.POST.has_key(strName): 
     return ""  
    if request.POST[strName]: 
     return ','.join(request.POST.getlist(strName))   
    else: 
     return ""