Hier ist ein Beispiel der App. Der wesentliche Code ist in: golang-code / handler / handler.go (Nach dem Betreff sollte eine ID erscheinen!)
Ich versuche, ein kleines Blog-System in Golang auf Google Appengine zu erstellen und Moustache als Vorlagen-Engine zu verwenden.
Also, ich habe eine Struktur:
%Vor%Die Daten werden über
an GAE übergeben %Vor%GAE weist also automatisch eine intID (int64) zu. Jetzt habe ich versucht, die neuesten Blogposts zu bekommen
%Vor%Bis dort alles funktioniert, aber wenn ich versuche, auf intID (oder stringID, was auch immer) zuzugreifen, habe ich keinen Zugriff darauf: - (
%Vor%(PostTitle funktioniert, intID nicht, ich habe tausend Dinge probiert, nichts hat funktioniert :-()
Irgendjemand eine Idee? Das wäre großartig!
Bearbeiten: Ich benutze Schnurrbart.
Im Code verwende ich:
%Vor%Und dann können die Daten in der .mustache-Vorlage mit {{{Content}}} oder {{{PostTitle}}} usw. abgerufen werden.
intID
ist eine interne Eigenschaft eines Schlüssels, nicht der Struktur, und ist über einen Getter zugänglich:
GetAll
gibt []*Key
zurück, was aber nicht der Fall ist mit:
Eine Möglichkeit, dies zu umgehen, besteht darin, eine Viewmodel-Struktur zu erstellen, die sowohl Ihre Post- als auch Ihre Schlüsselinformationen enthält (ungetestet, aber das ist der Kern davon):
%Vor%Wie hyperslug darauf hingewiesen hat, befindet sich das ID-Feld einer Entität auf dem Schlüssel, nicht auf der Struktur, in die es eingelesen wird.
Sie können auch ein ID-Feld zu Ihrer Struktur hinzufügen und den Datenspeicher an Ignoriere es , zB:
%Vor%Sie können dann das Id-Feld nach einem Aufruf von GetAll () wie folgt eingeben
%Vor%Dies hat den Vorteil, dass kein zusätzlicher Typ eingeführt wird.
Ich weiß, dass diese Frage ein paar Jahre alt ist, aber der folgende Artikel war mir in dieser Hinsicht sehr hilfreich: Golang-Grundlagen mit Google Datastore .
In dem Artikel gibt der Autor ein schönes Beispiel dafür, wie Sie eine Abfrage ausführen können, die eine Entität nach ihrer ID abruft ...
%Vor%... sowie das Abrufen einer Liste / Sammlung von Entitäten mit der zugehörigen ID:
%Vor%Das obige Snippet ist sehr nahe an der hilfreichen Antwort von @koz.
Tags und Links mustache go google-app-engine google-cloud-datastore