2016-12-07 3 views
0

У меня есть таблица, заполняющую на использование django_tables2, с двумя колонками:только позволяет Выбрать один Django_tables2

tables.py

class SummaryTable(tables.Table): 

    update = CheckBoxColumnWithName(verbose_name = "Select",accessor="pk", 
            orderable=False) 

    class Meta: 
     model = Vehicle 
     fields = ('update', 'vehid') 

     # Add class="paleblue" to <table> tag 
     attrs = {'class':'paleblue'} 

Колонна обновление и vehid.

Что мне нужно, так это ограничить пользователя только одним флажком, если они выбирают другой флажок, он отменяет выбор первого и выбирает новый выбор.

Может ли кто-нибудь посоветовать, как это сделать?

+0

Что такое CheckBoxColumnWithName? Я не вижу его в таблицах 2 doc по адресу http://django-tables2.readthedocs.io/en/latest/pages/api-reference.html#column – nigel222

+0

@ nigel222 это обычная 'CheckBoxColumn', которая позволяет заголовок – Jim

+0

Я бы предположил, что вы хотите создать пользовательский столбец, который будет генерировать столбец радиокнопками или столбец кнопок, связанных с JavaScript, который скопирует последний выбор в (возможно, скрытое) поле ввода. Тем не менее, я не собираюсь писать это! – nigel222

ответ

0

Вот источник таблиц специального назначения2, которые я использую во всплывающих таблицах. Javascript отправляет результат обратно в родительское окно, которое вызывает всплывающее окно и закрывает окно. Как это сделать, это вопрос Javascript, а не Python/Django, и я уверен, что способ, которым я это делаю, не самый лучший, поскольку JS не является одной из моих сильных сторон. Во всяком случае, часть Python:

class SelectorColumn(tables.Column): 
    """ a special column that will normally be used only by selectPopupFactory """ 
    def __init__(self, *a, **kw): 
     clickme = kw.pop('clickme', None) # html or by default, the column value as link 
     super().__init__(*a, **kw) 
     self.clickme = mark_safe(clickme) 

    def render(self, value): 
     return format_html("<a href='#' onclick='return returnResultAndClose(\"{}\");'>{}</a>", value, self.clickme or value) 

За то, что вы спрашиваете, я хотел бы предложить, что JS «returnResultAndClose» должен заполнить скрытый поле ввода (перезапись его предыдущее содержимое, если таковые имеются), поэтому, когда форма sumbitted, возвращается только последний элемент, который нужно выбрать.

 Смежные вопросы

  • Нет связанных вопросов^_^