By default columns are positioned in the same order as they are declared, however when mixing auto-generated columns (via Table.Meta.model) with manually declared columns, the column sequence becomes ambiguous.
To resolve the ambiguity, columns sequence can be declared via the Table.Meta.sequence option:
class PersonTable(tables.Table):
selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
class Meta:
model = Person
sequence = ("selection", "first_name", "last_name")
The special value "..." can be used to indicate that any omitted columns should inserted at that location. As such it can be used at most once.