2011-02-02 4 views
1

еще вопрос по этому вопросу. У меня есть элементы в списке. У каждого элемента есть флажок. Я хочу сделать то, что я хочу сделать, это отметить все элементы, которые являются подмножеством элементов. Подмножество items = client.storageitem_set.all() - items = models.StorageItem.objects.filter(orderstoragelist__order__pk = order.pk) Это определено в другом представлении, называемом edit_order.Django checkbox хочет проверить только подмножество в списке товаров

Так что в views.edit_order есть список подмножеств команд. Я перехожу к views.client_items. Здесь я хочу, чтобы все подмножества элементов были отмечены флажком. Прямо сейчас код просто проверяет для первый элемент. Я больше этого не хочу. Вместо этого я хочу проверить подмножество элементов.

def client_items(request, client_id = 0): 
    client = None 
    items = None 
    try: 
     client = models.Client.objects.get(pk = client_id) 
     items = client.storageitem_set.all() 
    except: 
     return HttpResponse(reverse(return_clients)) 
    return render_to_response('items.html', {'items':items, 'client':client}, context_instance = RequestContext(request)) # Redirect after POST 


{% for item in items %} 
      <tr class="items_table_row"> 
        <td><input type="checkbox" name="{{item.pk}}" value="{{item.pk}}" "{% ifequal forloop.counter 1 %} checked="checked"{% endifequal %}> 
        <td>{{item.tiptop_id}}</td><td>{{item.alternative_id}}</td><td>{{item.title}}</td><td>{{item.type}}</td><td>{{item.format}}</td> 
        <td><span id="{{item.pk}}" name="type">{{item.itemstatushistory_set.latest}}</span></td><td>{{item.itemstatushistory_set.latest.date.date|date:"d M Y"}}</td> 
        <td><a href="{% url tiptop.views.edit_item item.client.pk item.pk %}" onclick="return showAddAnotherPopup(this);">Edit</a></td> 
      </tr> 
    {% endfor %} 
+0

Как вы ожидаете, чтобы получить список из другой точки зрения? Как это получается в * этом * представлении? –

+0

@ Daniel, В основном в views.edit_order, у него есть список предметов, но не у всех. Только тот, который был заказан. Поэтому для каждого заказа view.edit есть кнопка, которая перенаправляет их на страницу списка элементов. Все элементы перечислены. Я хочу, чтобы все элементы, перечисленные в views.edit_order, были проверены в полном списке элементов. Остальные предметы следует отмахиваться. – Shehzad009

+0

Если бы я был вами, я бы попытался сделать это с помощью форм django, а затем создать правильный исходный dict для формы. –

ответ

0

Это может помочь, хотя я никогда не делал этого раньше, если у вас есть некоторые модели M вам просто нужно сделать, это форма с данными/параметрами, которые нужны и применяются на подмножества.

 

# Model 
class M(models.Model): 
    status = models.BooleanField() # this will be our checkbox 
    # your stuffs 

# Model's form 
class MForm(ModelForm): 
    class Meta: 
     model = M 

     widgets = { 
      'status': CheckboxInput(attrs = {'checked': 'checked'}), 
     } 
 

Султан

+0

У меня уже есть флажок для views.edit_order (subset) и views.client_items (Полный список). Я могу отметить все предметы, и я могу отметить по крайней мере по элементу за раз (приведенный выше код). Поэтому я не совсем уверен, почему мне нужно отображать класс. – Shehzad009