выберите все строки в django_tables2

Я попытался выбрать все строки в таблице, щелкнув верхний флажок в CheckBoxColumn со следующим определением:

selection = tables.CheckBoxColumn(accessor="pk", orderable=False)

Однако строки не выбраны, что еще мне нужно сделать? Я использую django 1.4.1 и django_tables2 0.13.0.


person gypaetus    schedule 17.10.2012    source источник


Ответы (2)


Можно установить все флажки в CheckBoxColumn, заменив входной атрибут в ячейке заголовка:

selection = tables.CheckBoxColumn(accessor="pk", attrs = { "th__input": 
                                        {"onclick": "toggle(this)"}},
                                        orderable=False)

Затем эта конструкция JavaScript в файле шаблона должна выполнить работу .

<script language="JavaScript">
function toggle(source) {
    checkboxes = document.getElementsByName('selection');
    for(var i in checkboxes)
        checkboxes[i].checked = source.checked;
}
</script>
person gypaetus    schedule 24.10.2012

К сожалению, CheckBoxColumn очень прост. Флажок заголовка ничего не делает, и вам нужно написать JavaScript, чтобы он работал. Есть планы сделать это более плавным, но вряд ли это произойдет в ближайшее время.

person bradley.ayers    schedule 17.10.2012
comment
Спасибо, не могли бы вы указать мне пример JavaScript, который можно использовать для выбора всех строк в таблице, выбрав поле заголовка? - person gypaetus; 18.10.2012
comment
Я не знаю ничего, что можно было бы легко интегрировать, но я знаю, что эта функция существует в django.contrib.admin веб-интерфейсе. Может, там заглянем? - person bradley.ayers; 18.10.2012