2017-10-05 2 views
0

Hallo alles, was ich versuche, einem Benutzer zu ermöglichen, eine elektronische Krankenakte Software zu verwenden, um eine Patienteninstanz mit einem Formular zu erstellen und die Instanz auf einer separaten Seite angezeigt werden, die über die zugegriffen werden kann see patient Verbindung.Erstellen von separaten Ansichten für verwandte Daten in Django

Dies ist Code für mein views.py

Ich habe die Identity_view Klasse basiert Ansicht, die über die nesting.html

habe ich gemacht wird, sowohl für die GET und POST Methoden die bekommen ungebundene Form und post die gebundene Form zum Server und speichern Sie in der Datenbank.

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) 

Dies ist das nesting.html Dokument

Derzeit dieser Abschnitt meines Codes auf der gleichen Seite wie die Form ist, dass der Patient Instanzen erstellen verwendet wird.

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

Dies ist ein Bild des aktuellen Stands der Vorlagen:

enter image description here

Im Bild oben ich die Kartenlisten unter dem Formular erstellt werden soll auf der Seite gerendert werden, die sein kann Zugriff über den Navigationslink see patient im Seitenmenü. Ich habe die HTML-Vorlage bereits in dem Unterordner erstellt, den ich im Ordner templates erstelle. Ich möchte nur sicherstellen, dass die Patientendaten mit der Templating-Sprache auf einer separaten Seite angezeigt werden.

Vielen Dank.

Antwort

2

Um Patientenkartenlisten auf einer separaten Seite anzeigen zu lassen, auf die über den Link Patient sehen zugegriffen werden kann, müssen Sie eine andere Ansicht erstellen, in der Sie alle vom angemeldeten Benutzer erstellten Patienten abrufen.

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 

können Sie Identities in Ihrer Vorlage zugreifen Patienten Liste anzuzeigen, wie Sie in nesting/nesting.html

+0

getan haben @PaulDixit Sie für die Hilfe danken. Frage: Sind die 'identitys' in' identitys = self.model.objects.filter (user = request.user) 'genauso wie die' Identities' in 'context ['Identitäten'] = self.get_identities()'? –

+0

@WalthamWECAN ja. 'get_identities' ist eine Methode der Klasse' IdentityListyView' und kann somit von selbst aufgerufen werden. –

+0

@WalthamWECAN Wenn Sie diese Antwort hilfreich finden, stimmen Sie sie ab und akzeptieren Sie sie. –

Verwandte Themen