2017-10-05 11 views
0

こんにちは、電子カルテソフトウェアを使用してフォームを使用して患者インスタンスを作成し、インスタンスを作成して別のページに表示することができます。 see patientリンク。Djangoで関連するデータの個別ビューを作成する

これは私が取得するGETPOST方法の両方を使用nesting.html

を経由してレンダリングされる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文書

は現在、私のコードのこの部分は、患者のインスタンスを作成するために使用されるフォームと同じページにあるあります。

 {% 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 %} 

これは、テンプレートの現在の状態の画像です:私は、フォームの下に作成されたカードのリストは可能なページにレンダリングされるようにしたい上の画像で

enter image description here

サイドメニューのナビゲーションリンクsee patientでアクセスできます。私はtemplatesフォルダに作成したサブフォルダにHTMLテンプレートを作成しています。私はちょうど別のページのテンプレート言語を使用して患者のデータが置き換えられるようにしたい。

ありがとうございます。

答えて

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 

あなたが助けてくれてありがとう@PaulDixit nesting/nesting.html

+0

に行ったように、患者のリストを表示するには、テンプレートでIdentitiesにアクセスすることができます。質問: 'identities = self.model.objects.filter(user = request.user)'のIDは の 'Identities'と同じですか?context ['Identities'] = self.get_identities()'? –

+0

@ WalthamWECANはい。 'get_identities'はクラス' IdentityListyView'のメソッドであるため、selfによってアクセスできます。 –

+0

@WalthamWECANこの回答が有益であると判明した場合は、それを受け入れてください。 –

関連する問題