python - Python/Django - 无法访问通用视图中的链接模型
问题描述
我是 Python 和 Django 的新手我已经链接了 3 个模型:患者 -> 访问 -> 处方
我想在 detailView 中覆盖 get_context_data 以访问与患者就诊相关的所有处方
但我有一个错误:
PatientFile 对象没有属性“访问”
我看看self里面是什么:
0x04772EB0 处的患者.views.PatientFile 对象
我不明白 self 是我的患者实例,所以我应该可以访问所有具有“访问”属性的访问?
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
解决方案
在self
你的DetailView
是PatientFile
视图对象,而不是Patient
对象。
但是,您可以使用[Django-doc]访问该Patient
对象:self.object
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
。
推荐阅读
- powershell - Powershell foreach 在暂停后执行
- reactjs - Next.js 渲染页面
- ios - UITableView 标题背景颜色
- spring - SecurityContextHolder 返回正确的用户值,但 Authentication 对象返回 null
- ruby-on-rails - Rails 6.0.2.1 - “sameSite” 属性设置为 “none” “secure” 属性
- apache-spark - Pyspark 将列连接到数组并分解值
- json - 在jpa中返回带有映射的json
- java - LocalDate.parse(String, formatter) 返回错误的格式
- django - 来自路由器 IP 的无效 HOST 标头
- python - 遍历列表并找到素数并添加到另一个列表