Я создал новый столбец (ISSUE_NUMBER), который представляет только «рк» таблицы, но в модели возвращает объект:Джанго-tables2: Невозможно отсортировать пользовательский столбец, используя order_by
@property
def issue_number(self):
return self
Проблемы приходит, когда я хочу заказать таблицу с этим столбцом. Я получаю случайный порядок, возможно, это потому, что я заказываю не через целое число, а через объект. «? Сортировать = ISSUE_NUMBER»
Если я мыши над заголовке столбца, я получаю = но я хотел бы иметь «? Сортировать = идентификатор»
class IssueNumberColumn(tables.Column):
def render(self, value):
obj = value
if obj.status.upper() in ['RESOLVED', 'INVALID']:
return mark_safe('<a href="%s"><s>#%s</s></a>' % (reverse('issues.views.view', args=(obj.pk,)), obj.pk))
else:
return mark_safe('<a href="%s">#%s</a>' % (reverse('issues.views.view', args=(obj.pk,)), obj.pk))
class IssueTable(tables.Table):
issue_number = IssueNumberColumn(verbose_name="ID", order_by='pk')
#id = tables.Column(accessor='pk')
def render_id(self, value):
return mark_safe('<a href="%s">#%s</a>' % (reverse('issues.views.view', args=(value,)), value))
def render_title(self, value, record):
return mark_safe('<a href="%s">%s</a>' % (reverse('issues.views.view', args=(record.id,)), value))
def render_created(self, value):
#without doing this, it shows American date formatting.
return value
class Meta(object):
model = Issue
fields = ('issue_number', 'title', 'product', 'type', 'priority', 'status', 'created')
attrs = {'class': 'table table-bordered'}
empty_text = _('No records found')
я делал много попыток, но ничего помогает:
issue_number = IssueNumberColumn(verbose_name="ID", order_by='pk')
issue_number = IssueNumberColumn(verbose_name="ID", order_by='id')
он еще не работает. – Ruben
Извините, у меня нет других предложений. Надеюсь, вы выясните, в чем проблема. – Alasdair