Python/Django无法访问通用vi中的链接模型

2024-10-01 22:25:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python和Django的新手 我链接了3个模型:患者->;访问->;处方

我想覆盖detailView中的get\u context\u数据,以访问与患者相关的所有处方 就诊与患者相关\u name='就诊' prescription to visit related\u name='处方'

但我有个错误:

PatientFile object has no attribute 'visits'

我看什么是内在的自我:

patient.views.PatientFile object at 0x04772EB0

我不明白 self是我的病人实例,所以我应该可以访问属性为“visits”的所有就诊

class PatientFile(DetailView):

    model = Patient
    context_object_name = "patient"
    template_name = "patient/file.html"

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
    context['prescriptions'] = []
    print('self : ', self)
    for visit in self.visits:
        context['prescriptions'].append(visits.prescriptions)
        return context

Tags: namegtself患者datagetobjectcontext
1条回答
网友
1楼 · 发布于 2024-10-01 22:25:25

DetailView中的selfPatientFile视图对象,而不是Patient对象

但是,您可以使用^{} [Django-doc]访问Patient对象:

class PatientFile(DetailView):

    model = Patient
    context_object_name = 'patient'
    template_name = 'patient/file.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['prescriptions'] = prescriptions = []
        for visit in self.object.visits.all():
            prescriptions.extend(visit.prescriptions.all())
        return context

注意,为了迭代关系,应该使用.all(),而不仅仅是self.visits

相关问题 更多 >

    热门问题