繁体   English   中英

只允许选择一个Django_tables2

[英]Only allow Select One Django_tables2

我有一个使用django_tables2填充的表,其中有两列:

table.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'}

列更新和提示。

我需要限制用户仅选择一个复选框,如果他们选择另一个复选框,它将取消选择第一个复选框并选择新的选择。

谁能建议该怎么做?

这是我在弹出表中使用的特殊用途table2列的来源。 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”应该填充一个隐藏的输入框(如果有的话,覆盖其先前的内容),因此在对表格进行汇总时,仅返回要选择的最后一项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM