Je commence à développer sur le moteur de l'application avec python 2.7 et je suis vraiment confus avec le datastore et les ancêtres/keys/parents. Par exemple, j'essaye de développer un forum simple avec des catégories, des sujets et une réponse.Utilisation de datastore dans google app engine
Je ne trouve pas le moyen de représenter une relation et de l'utiliser. J'ai exploré et exploré à nouveau la documentation, mais je ne peux pas l'implémenter. Pouvez-vous partager un exemple de code expliquant les relations entre l'entité et la requête que vous utilisez pour stocker et obtenir des données?
C'est ma classe dans models.py
class UserInfo(db.Model):
Email = db.EmailProperty()
pseudo = db.StringProperty()
UserID = db.StringProperty()
class Sujet(db.Model):
Titre = db.StringProperty()
Auteur = db.StringProperty()
Date = db.DateTimeProperty(auto_now_add=True)
class Message(db.Model):
Auteur = db.StringProperty()
sujet = db.ReferenceProperty(Sujet, collection_name='messages')
Date = db.DateTimeProperty(auto_now_add=True)
Message = db.TextProperty()
Ma méthode post:
def post (self):
UserID = users.get_current_user().user_id()
query = UserInfo.all()
query.filter('UserID =',UserID)
User_query = query.get()
Auteur = User_query.pseudo
Titre = self.request.get('titre')
if Titre:
sujet = Sujet()
sujet.Auteur = Auteur
sujet.Titre = Titre
sujet.put()
message = Message()
message.Auteur = Auteur
message.sujet = sujet
message.Message = self.request.get('message')
message.put()
else:
sujet = Sujet.all()
sujet = sujet.filter('Titre =',self.request.get('sujet'))
sujet = sujet.get()
message = Message()
message.Auteur = Auteur
message.sujet = sujet
message.Message = self.request.get('message')
message.put()
Je dois agir. Créer un nouveau sujet si Titre existe ou un nouveau message sinon. Mon problème est que lorsque je crée un « sujet » la propriété de référence fonctionne bien, mais lorsque je tente d'ajouter un message, la propriété de référence est none ...
mon html pour ajouter un sujet:
<h4>Nouveau sujet</h4>
<form action="/index/forum" method="post">
<div><input type="text" name="titre" placeholder="Titre " size="24"</div>
<div><textarea name="message" rows="5" cols="30" size="24"></textarea></div>
<div><input type="submit" value="Créer" class="btn"></div>
</form>
Et d'ajouter un message à un existant:
<h3>{{ sujet.Titre }}</h3>
<div>
<form action="/index/forum" method="post">
<div><input type="hidden" name="sujet" value="{{ sujet.Titre }} " size="24" </div>
<div><textarea name="message" rows="5" cols="30" size="24"></textarea></div>
<div><input type="submit" value="Répondre" class="btn"></div>
</form>
</div>
Quel code avez-vous essayé? Pourquoi ça ne marche pas? –
vous suggère d'acheter un livre, cela couvre exactement ce que vous demandez dans un format de tutoriel: http://www.amazon.co.uk/Code-Cloud-Pragmatic-Programmers-Chu-Carroll/dp/1934356638/ref= sr_1_2? ie = UTF8 & qid = 1353423917 & sr = 8-2 –