Как я могу использовать Linkify с Django_tables2
Я прочитал несколько подобных вопросов и все документы, которые я могу найти по этому вопросу, но я все еще не могу понять решение. Я построил свою модель, в которой есть игрок, текстовое описание клавиатуры и url на нее. Я хочу показать в таблице игрока, клавиатуру и хочу, чтобы текст клавиатуры имел колонку url, встроенную в нее. Любая помощь будет принята с благодарностью.
Models.py:
class player_hardware(models.Model):
Player = models.TextField(blank = False, primary_key = True)
keyboard = models.TextField(blank = True, max_length = 200)
keyboard_url = models.TextField(blank = True, max_length = 200)
Views.py:
class PlayerListView(SingleTableView):
model = player_hardware
table_class = PersonTable
template_name = 'application/playerlist.html'
Tables.py
class PersonTable(tables.Table):
class Meta:
model = player_hardware
template_name = "django_tables2/bootstrap4.html"
fields = ("Player", "keyboard")
Если keyboard_url ведет на внешний сайт, проще добавить url-ссылку в пользовательский метод render_field в таблице.
class PersonTable(tables.Table):
def render_keyboard(self, record):
return mark_safe(f'<a href="{record.keyboard_url}">{record.keyboard}</a>')
Поле linkify предназначено для внутренних ссылок, но если вы хотите использовать linkify для создания внешней ссылки, это будет выглядеть так:
class PersonTable(tables.Table):
keyboard = tables.Column(linkify=self.get_keyboard_url)
def get_keyboard_url(self, record):
return record.keyboard_url