2017-10-05 1 views
0

안녕하십니까. 사용자가 전자 의료 기록 소프트웨어를 사용하여 양식을 사용하여 환자 인스턴스를 만들고 해당 인스턴스를 통해 생성 된 인스턴스를 별도의 페이지에 표시 할 수 있습니다. see patient 링크.Django에서 관련 데이터에 대한 개별 뷰 만들기

이 내가 얻을 내가 사용하는 nesting.html

모두 GETPOST 방법을 통해 렌더링되는 Identity_view 클래스 기반의 뷰를 생성

내 views.py에 대한 코드입니다 무제한 폼을 만들고 서버에 바운드 폼을 게시하고 데이터베이스에 저장합니다.

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 문서를합니다. 내가 양식 아래에 생성 된 카드 목록이 될 수있는 페이지로 렌더링 할 위의 이미지에서

enter image description here

:

 {% 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 템플릿을 만들었습니다. 환자 데이터가 별도의 페이지에서 템플릿 언어를 사용하여 옮겨 지도록하고 싶습니다.

감사합니다.

답변

2

환자 링크보기를 통해 액세스 할 수있는 별도의 페이지에 환자의 카드 목록을 표시하려면 로그인 한 사용자가 만든 모든 환자를 가져올 다른보기를 만들어야합니다. 당신이 도움을 주셔서 감사합니다 @PaulDixit nesting/nesting.html

+0

에서했던 것처럼

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에 액세스 할 수 있습니다. 질문 :'identities = self.model.objects.filter (user = request.user)'의 ID는 의'Identities'와 같습니다. context [ 'Identities'] = self.get_identities()'? –

+0

@WalthamWECAN 예. 'get_identities'는 클래스 'IdentityListyView'의 메소드이므로 self가 접근 할 수 있습니다. –

+0

@WalthamWECAN이 답변을 찾으면 도움이 될 것입니다. –

관련 문제