Ich habe ein Formular auf einer Seite und senden Sie die Details des Formulars auf den Klick der Schaltfläche Senden und die Seite aktualisieren möchten, nachdem das Objekt zum Datenspeicher hinzugefügt wurde. Ich habe online gelesen, dass dies an der Eventual Consistency des Datenspeichers liegen könnte, aber es scheint nicht möglich zu sein, einen Weg zu finden, das gewünschte Ergebnis zu erzielen (Aktualisieren der Seite).GAE: Wie Seite nach dem Senden von Formular auf GAE aktualisieren?
class AddUpdateProfile(webapp2.RequestHandler):
def post(self):
#This will be used to add/update profile in a datastore. Will be called when the user clicks on submit button on the Profile Page
template = JINJA_ENVIRONMENT.get_template('profile.html')
error = None
name = self.request.get('name')
designation = self.request.get('designation')
salary = self.request.get('salary')
currency = self.request.get('currency')
logging.info("Name = "+name)
logging.info("Designation = "+designation)
logging.info("Salary = "+salary)
logging.info("Currency = "+currency)
profile = UserProfile(parent=userProfile_key(users.get_current_user().email()))
profile.name = name
profile.designation = designation
profile.salary = int(salary)
profile.currency = currency
profile.email = str(users.get_current_user().email())
profile.put()
#Go back to main page. TODO : Change this to update
self.redirect('/profile')
class Profile(webapp2.RequestHandler):
def get(self):
logging.info("Inside Profile Page")
user = users.get_current_user()
if user:
profileInfo = getProfileInformation(user.email())
logging.info("Found a user inside Profile Page")
url = users.create_logout_url(self.request.uri)
if profileInfo is None or not profileInfo:
logging.info("Email = "+user.email())
logging.info("Profile Info not found")
template_values = {
'user': user.nickname(),
'url': url
}
else:
logging.info("Profile Info found")
template_values = {
'user': user.nickname(),
'url': url,
'name' : profileInfo[0].name,
'designation' : profileInfo[0].designation,
'salary' : profileInfo[0].salary,
'currency' : profileInfo[0].currency
}
template_values = template_values
template = JINJA_ENVIRONMENT.get_template('profile.html')
self.response.write(template.render(template_values))
else:
logging.info("User not found. Loading Landing page")
template_values = {
'url' : users.create_login_url(self.request.uri)
}
template = JINJA_ENVIRONMENT.get_template('landing.html')
self.response.write(template.render(template_values))
class MainPage(webapp2.RequestHandler):
def get(self):
logging.info("Inside MainPage")
user = users.get_current_user()
if user:
logging.info("Found a user inside MainPage")
url = users.create_logout_url(self.request.uri)
url_linktext = 'SIGN OUT'
template_values = {
'user': user.nickname(),
'url': url,
'userPage' : "no",
'url_linktext': url_linktext,
}
template = JINJA_ENVIRONMENT.get_template('index.html')
self.response.write(template.render(template_values))
else:
logging.info("User not found. Loading Landing page")
template_values = {
'url' : users.create_login_url(self.request.uri)
}
template = JINJA_ENVIRONMENT.get_template('landing.html')
self.response.write(template.render(template_values))
app = webapp2.WSGIApplication([
('/', MainPage),
('/profile', Profile),
('/addProfile', AddUpdateProfile)
], debug=True)
Es wäre toll, wenn jemand einen Blick auf den Code haben könnte und geben Sie mir eine Eingabe auf, wie das Problem zu lösen.
Jede Hilfe wird wirklich geschätzt! Danke!
Sie haben Ihr Problem nicht beschrieben. * Was * ist wegen eventueller Konsistenz? –
Ich denke, ich kann eine Antwort geben, aber wie Daniel betont, müssen Sie Ihr Problem genauer beschreiben und auch die Fragen kürzer machen - es gibt keine Notwendigkeit für die Leute, den ganzen Code zu sehen (wie Gehalt, Währung, etc). Versuchen Sie, Ihren Code so kurz wie möglich und auf den Punkt zu bringen. Einmal bearbeitet, kann ich eine Antwort geben. –