Django

2010-04-30 17 views
13

'u kullanarak bir kerede çeşitli kayıtları güncelleme Sol taraftaki onay kutularıyla birlikte bir kayıt listesi oluşturmak istiyorum ... Gmail'deki gelen kutusu gibi. Daha sonra bir kullanıcı bu onay kutularının bazılarını veya tümünü seçerse, muhtemelen bir tuşa tıklayarak seçilen kayıtlar güncellenebilir (yalnızca bir alan BTW olarak güncellenir).Django

Bunun nasıl yapılacağı konusunda takıldım .... fikirler?

Ekran Kod

{% for issue in issues %} 
    <tr class="{% cycle 'row1' 'row2' %}"> 
     <td><input name="" type="checkbox" value="{{ issue.id }}" /></td> 
     <td>{{ issue.description }}</td> 
     <td>{{ issue.type }}</td> 
     <td>{{ issue.status }}</td> 
     <td>{{ issue.date_time_added|date:"d, M Y" }}</td> 
     <td>{{ issue.added_by }}</td> 
     <td>{{ issue.assigned_to }}</td> 
    </tr> 
{% endfor %} 

cevap

26

Use the queryset update() method:

id_list = list_of_ids_from_checkboxes 
MyModel.objects.filter(id__in=id_list).update(myattribute=True) 

Görünen HTML onay kutuları için name değeri eksik. Tüm onay kutularında tek bir adınız varsa, kimlik listesi, request.POST'dan doğrudan alabileceğiniz tek bir POST değişkenine geçirilir (formunuzu gönderi olarak gönderiyorsanız, hangisinin olması gerektiği varsayılır):

id_list = request.POST.getlist('checkboxname') 
+0

Ana sorunum onay kutularıyla .... Üzgünüm, söz konusu bit'ten bahsetmeyi unuttum ... Seçili kimlikleri nasıl geçebilirim? – Stephen

+0

Onay kutularını nasıl oluşturuyorsunuz? –

+7

Update() yöntemi çok kullanışlıdır, sadece önemli bir uyarıdan haberdar olduğunuzdan emin olun! Etkilenen model (ler) ve/veya pre_save/post_save sinyal işleyicilerinizde özel save() yönteminiz varsa, bunlar aranmayacaktır. –