You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django-tables2模型主键定义疑问及Patient.pk值错误求助

嘿,我来帮你搞定这两个问题:

关于Django-tables2中模型主键的疑问

首先明确一点:在Django里,如果你没手动给模型指定主键字段,框架会自动生成一个名为id的自增整数主键,这个主键会被django-tables2自动识别和使用,完全不需要额外配置。

只有当你在模型里显式定义了自定义主键(比如写了patient_id = models.AutoField(primary_key=True))时,才需要在table的配置里对应使用这个自定义的主键字段名。

解决“解析访问器Patient.pk时未能找到键[Patient]”的错误

这个错误的根源在于你linkify里的访问器写法错了。

在django-tables2的上下文中,表格的每一行对应的都是一个Patient实例,所以访问器是针对这个实例来查找属性的——你只需要写"pk"就行,根本不需要加Patient.前缀!你写tables.A("Patient.pk")相当于告诉框架去当前实例里找名为Patient的属性,这显然不存在,所以才会报错。

修正后的tables.py代码应该是这样的:

class PatientTable(tables.Table):
    FirstName = tables.Column(linkify=("PatientDetailView", {"pk": tables.A("pk")}))
    LastName = tables.Column(linkify=("PatientDetailView", {"pk": tables.A("pk")}))
    Telephone_no = tables.Column(linkify=("PatientDetailView", {"pk": tables.A("pk")}))
    class Meta:
        model = Patient
        # attrs = {'class': 'table table-striped table-hover'}
        exclude = ("user", "Notes", "Address")
        template_name = 'django_tables2/bootstrap4.html'

替换之后,这个值错误应该就能消失了,表格里的字段也能正确跳转到对应的详情页啦。

内容的提问来源于stack exchange,提问作者user11671655

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:52:23