选项1:将每一列都转换为链接
您可以创建一个可调用函数来转换
record
添加到链接中,并将其添加到所有列中,因此:
def get_link(record):
return f'www.example.com/patients/{record.patientid}'
class PatientListView(tables.Table):
name = tables.Column('Practice', linkify=get_link)
patientid = tables.Column(linkify=get_link)
firstname = tables.Column(linkify=get_link)
lastname = tables.Column(linkify=get_link)
dob = tables.Column(linkify=get_link)
addressline1 = tables.Column(linkify=get_link)
addressline2 = tables.Column(linkify=get_link)
city = tables.Column(linkify=get_link)
state = tables.Column(linkify=get_link)
zipcode = tables.Column(linkify=get_link)
class Meta:
template_name = 'django_tables2/bootstrap.html'
选项2:使行可点击
另一种选择是生成
data-href
属性,然后使用JavaScript使其表现得像一个链接,使用:
def get_link(record):
return f'www.example.com/patients/{record.patientid}'
class PatientListView(tables.Table):
name = tables.Column('Practice')
patientid = tables.Column()
firstname = tables.Column()
lastname = tables.Column()
dob = tables.Column()
addressline1 = tables.Column()
addressline2 = tables.Column()
city = tables.Column()
state = tables.Column()
zipcode = tables.Column()
class Meta:
row_attrs = {'data-link': get_link}
然后添加一些JavaScript:
$(function() {
$('tr[data-href]').on('click', function() {
window.location = $(this).data('href');
});
});
也许可以用以下方式来设计行:
tr[data-href] {
cursor: pointer;
}