带有 TemplateColumn 的 Django Tables2 视图不打印请求

问题描述 投票:0回答:1

我正在尝试在我的视图中打印请求,但是当我单击“Editar”按钮(TemplateColumn)时没有任何反应,这就是我在代码中的内容:

表.py

import django_tables2 as tables
from django_tables2 import TemplateColumn
from .models import Vencimientos, LogAsistencia

class VencimientosTable(tables.Table):

    asistencia = TemplateColumn(
            '<a class="btn btn btn-info btn-sm" href="{% url "checkin" record.id %}">Editar</a>')
    class Meta:
        model = Vencimientos
        template_name = "django_tables2/bootstrap5.html"
        fields = ("cliente","vencimiento","activo" )
        attrs = {"class": "table table-hover table-sm"}

url.py

urlpatterns = [
    
    ....
    path('asistencia/<int:pk>/', CheckIn.as_view(), name='checkin')

] 

views.py

class CheckIn(View):

    def get(self, request):
        print(request)

当我单击表中的“Editar”按钮时,我的想法是获取 record.id,以便我可以添加一些额外的代码。

django django-views django-tables2
1个回答
0
投票

使用自定义 render_ 方法来实现您想要做的事情。

from django.urls import reverse
from django.utils.html import format_html

class VencimientosTable(tables.Table):

    asistencia = tables.Column(empty_values=())

    def render_asistencia(self, record):
        url = reverse("checkin", kwargs={"pk": record.id})
        return format_html(f"<a class='btn btn btn-info btn-sm' href='{url}'>Editar</a>")
© www.soinside.com 2019 - 2024. All rights reserved.