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

Django Tables2 with TemplateColumn the View is not printing the request

提问人:Jorge López 提问时间:11/15/2023 最后编辑:Jorge López 更新时间:11/15/2023 访问量:50

问:

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

tables.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"}

urls.py

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

] 

views.py

class CheckIn(View):

    def get(self, request):
        print(request)
        return redirect ('asistencia')

当我单击表格中的“Editar”按钮时,我的想法是获取 record.id,以便我可以添加一些额外的代码,但该按钮没有任何作用

更新

我检查按钮,看到链接正确:

enter image description here

该按钮仍然不执行任何操作

django django-tables2

评论

0赞 Ben 11/15/2023
如果直接在浏览器中键入 URL,是否看到请求打印出来?http:local/asistencia/<int:pk>/
0赞 Jorge López 11/15/2023
是的,问题是按钮不知何故什么也没做,
0赞 Ben 11/15/2023
当您单击链接时绝对没有任何反应?页面上其他不相关的按钮是否有效?
0赞 Jorge López 11/15/2023
我还有一个带有按钮的搜索字段,它会醒来,如果我单击检查中的链接,它确实有效,只是如果我直接单击该按钮,它不起作用
0赞 Ben 11/15/2023
有趣。如果没有,请尝试删除 CSS 类,这应该只保留链接的 URL。如果可行,请逐个添加 CSS 类,直到找到导致问题的类。

答:

0赞 Ben 11/15/2023 #1

使用自定义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>")

评论

0赞 Jorge López 11/15/2023
谢谢,我尝试了您的解决方案,但我仍然没有得到任何响应,就像它没有到达视图并提供响应一样