大家好我试图允许用户使用电子病历软件使用表单创建患者实例,并将创建的实例显示在可通过see patient
链接访问的单独页面上。< / p>
这是我的views.py
的代码
我创建了基于Identity_view
类的视图,该视图通过nesting.html
我使用GET
和POST
方法获取无界形式,并将有界形式发布到服务器并保存到数据库。
from django.shortcuts import render, redirect
from django.views.generic import TemplateView
from nesting.forms import Identity_Form
from nesting.models import Identity_unique
class Identity_view(TemplateView):
template_name = 'nesting/nesting.html'
def get(self, request):
form = Identity_Form()
Identities = Identity_unique.objects.filter(user = request.user)
var = {'form': form, 'Identities': Identities}
return render(request, self.template_name, var)
def post(self, request):
form = Identity_Form(request.POST or None)
content = None
if form.is_valid():
NIS = form.save(commit = False)
NIS.user = request.user
NIS.save()
content = form.cleaned_data['NIS']
form = Identity_Form()
return redirect('nesting:nesting')
var = {'form': form, 'content': content}
return render(request,self.template_name, var)
这是nesting.html文档
目前,我的代码的这一部分与用于创建患者实例的表单位于同一页面上。
{% block body %}
{% for Identity in Identities %}
<div class = "row">
<div class="col-sm"></div>
<div class = "col-sm">
<div class = "card " style = "margin-top: 40px;">
<ul class = "list-group list-group-flush">
<li class = "list-group-item"><a class = "nav-link" href="#">{{Identity.First_Name}} {{Identity.Last_Name}} </a></li>
<li class = "list-group-item"><small><br>NIS: </small> {{ Identity.NIS }}</li>
</ul>
</div>
</div>
<div class="col-sm"></div>
</div>
{% endfor %}
{% endblock %}
这是模板当前状态的图像:
在上图中,我希望在表单下创建的卡片列表呈现到可以通过侧边菜单中的see patient
导航链接访问的页面。我已经在templates
文件夹中创建的子文件夹中创建了HTML模板。我只想确保在单独的页面上使用模板语言替换患者数据。
谢谢。
答案 0 :(得分:2)
为了在可以通过查看患者链接访问的单独页面上显示患者卡片列表,您需要创建另一个视图,在该视图中您将获取由登录用户创建的所有患者。
class IdentityListyView(ListView):
model = Identity_unique
template_name = 'templates/identity_list.html' # your template to show patients list
def get_identities(self):
identities = self.model.objects.filter(user=request.user)
return identities
def get_context_data(self, **kwargs):
'''
First create context with the required context_data then update the context with super.
'''
context = dict()
context['Identities'] = self.get_identities()
context.update(super(IdentityListyView, self).get_context_data(**kwargs))
return context
您可以在模板中访问Identities
以显示患者列表,就像您在nesting/nesting.html