我有一个填充使用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'}
列更新和车辆。
我需要的是限制用户只选择一个复选框,如果他们选择另一个复选框,则取消选择第一个复选框并选择新选项。
有人可以建议怎么做吗?
答案 0 :(得分:0)
这是我在弹出表中使用的特殊用途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&#34; returnResultAndClose&#34;应填充一个隐藏的输入框(如果有的话,覆盖其先前的内容),因此当表格被汇总时,只返回要选择的最后一个项目。