0

Ich habe Probleme, meine Array-Elemente in der Vorlage anzuzeigen. Ich habe gerade mit Entity-Beziehungen in GAE begonnen und finde keine geeigneten Lösungen für SO. Muss ich zuerst eine Abfrage in meinem Handler durchführen. Wenn ja, wie coz ich kämpfe mit der Logik.Datenspeicher One-to-Many Google App Engine

DatenspeicherProject Entitäten Beispielanzeige

enter image description here

DatenspeicherEmployees Entitäten Beispielanzeige

enter image description here

Project.py

class Project(ndb.Model): 
    projectID = ndb.IntegerProperty(required=True) 
    title = ndb.StringProperty(required=True) 
    description = ndb.StringProperty(required=True) 
    startAt = ndb.DateTimeProperty(indexed=True) 
    endAt = ndb.DateTimeProperty() 
    isFullDay = ndb.BooleanProperty() 
    days = ndb.KeyProperty(kind='CompanyDay', repeated=True) 
    employees = ndb.KeyProperty(kind='Employees', repeated=True) 
    client = ndb.KeyProperty(kind='Client') 

class Employees(ndb.Model): 
    name = ndb.StringProperty() 
    role = ndb.StringProperty() 

template

data geholt vom Back-End durch die Winkel http Service

<md-content class="md-padding projects" layout="row" layout-wrap> 
     <md-card ng-repeat="data in controller.projects" flex="20" ng-click="editProject(data)"> 
      <img src="" alt=""> 
      <md-card-content> 
       <div class="project-info"> 
        <h2 class="md-title">{{ data.title }}</h2> 
        <p>{{ data.description }}</p> 
        <p>{{ data.employees }}</p> 

       </div> 
      </md-card-content> 
     </md-card> 
    </md-content> 

Python-Code,

to/Kommentare antwortet
class commentsJsonHandler(webapp2.RequestHandler): 
@classmethod 
def route(cls): 
    """ 
    name: index, template:/
    """ 
    return webapp2.Route('/comments', handler=cls, name='_commments_') 

def get(self): 
    projects = Project.query() 

    def date_handler(obj): 
     print obj 
     if isinstance(obj, datetime): 
      return obj.isoformat() 
     else: 
      return str(obj) 

    self.response.out.write(json.dumps([dict(proj.to_dict(), **dict(id=proj.key.id())) for proj in projects], default=date_handler)) 

aus Winkel - Code, der vom Server angezeigt

var vm = this; 
    vm.projects = []; 
    $http.get('/comments') 
     .then(function(result) { 
      console.log(result); 
      vm.projects = result.data; 
     }); 

Mitarbeiter aus dem Datenspeicher anfordert.

enter image description here

+0

Bitte poste keine Bilder von Code. –

+0

Außerdem müssen Sie den Code tatsächlich veröffentlichen, der die Daten abruft. –

+0

Bearbeitete Post, um den Server-Abrufcode in eckig aufzunehmen. –

Antwort

2

Sie könnten Ihre date_handler ändern ndb.Key zu handhaben, um richtig Ihre Mitarbeitersammlung in Ihrem zurück json zu machen

def date_handler(obj): 
    print obj 
    if isinstance(obj, datetime): 
     return obj.isoformat() 
    elif isinstance(obj, ndb.Key): 
     return obj.get().to_dict() 
    else: 
     return str(obj) 

Möglicherweise möchten Sie den Namen dieser Methode ändern, wie es nicht ist Just doing date_handling mehr

+0

Perfekter Dank. Arbeite jetzt! –

Verwandte Themen