def main_page(request): # GET method ('key', 'value') guestbook_name = request.GET.get('guestbook_name', 'default_guestbook') # get key guestbook_key = Greeting.get_key_from_name(guestbook_name) # make query for select data ordered dsec greetings_query = Greeting.all().ancestor(guestbook_key).order('-date') # get result set greetings = greetings_query.fetch(10) # get user, if exist current user if users.get_current_user(): # create logout url url = users.create_logout_url(request.get_full_path()) url_linktext = 'Logout' else: # create login url url = users.create_login_url(request.get_full_path()) url_linktext = 'Login' # set up values for use in template template_values = { 'greetings': greetings, 'guestbook_name': guestbook_name, 'url': url, 'url_linktext': url_linktext, } return direct_to_template(request, 'guestbook/main_page.html', template_values)
def sign_post(request): if request.method == 'POST': guestbook_name = request.POST.get('guestbook_name') greeting = Greeting(parent=guestbook_key(guestbook_name)) if users.get_current_user(): greeting.author = users.get_current_user() greeting.content = request.POST.get('content') greeting.put() return HttpResponseRedirect('/?' + urllib.urlencode({'guestbook_name': guestbook_name})) return HttpResponseRedirect('/')
def post(self): guestbook_name = self.request.get('guestbook_name',DEFAULT_GUESTBOOK_NAME) greeting = Greeting(parent=guestbook_key(guestbook_name)) if users.get_current_user(): greeting.author = users.get_current_user() greeting.content = self.request.get('content') greeting.put() query_params = {'guestbook_name': guestbook_name} self.redirect('/guestbook/?' + urllib.urlencode(query_params))
def sign_post(request): if request.method == 'POST': guestbook_name = request.POST.get('guestbook_name') greeting = Greeting(parent=guestbook_key(guestbook_name)) # if users.get_current_user(): # greeting.author = users.get_current_user() greeting.content = request.POST.get('content') greeting.put() return HttpResponseRedirect( '/?' + urllib.urlencode({'guestbook_name': guestbook_name})) return HttpResponseRedirect('/')
def main_page(request): guestbook_name = request.GET.get('guestbook_name', DEFAULT_GUESTBOOK_NAME) # Ancestor Queries, as shown here, are strongly consistent with the High # Replication Datastore. Queries that span entity groups are eventually # consistent. If we omitted the ancestor from this query there would be # a slight chance that Greeting that had just been written would not # show up in a query. greetings_query = Greeting.query(ancestor=guestbook_key(guestbook_name)).order(-Greeting.date) greetings = greetings_query.fetch(10) if users.get_current_user(): url = users.create_logout_url(request.get_full_path()) url_linktext = 'Logout' else: url = users.create_login_url(request.get_full_path()) url_linktext = 'Login' template_values = { 'greetings': greetings, 'guestbook_name': guestbook_name, 'url': url, 'url_linktext': url_linktext, } #return direct_to_template(request, 'guestbook/main_page.html', template_values) return render(request, 'guestbook/main_page.html', template_values)
def main_page(request): guestbook_name = request.GET.get('guestbook_name', DEFAULT_GUESTBOOK_NAME) # Ancestor Queries, as shown here, are strongly consistent with the High # Replication Datastore. Queries that span entity groups are eventually # consistent. If we omitted the ancestor from this query there would be # a slight chance that Greeting that had just been written would not # show up in a query. greetings_query = Greeting.query( ancestor=guestbook_key(guestbook_name)).order(-Greeting.date) greetings = greetings_query.fetch(10) # if users.get_current_user(): # url = users.create_logout_url(request.get_full_path()) # url_linktext = 'Logout' # else: # url = users.create_login_url(request.get_full_path()) # url_linktext = 'Login' # url = users.create_login_url(request.get_full_path()) url = '' url_linktext = 'Login' template_values = { 'greetings': greetings, 'guestbook_name': guestbook_name, 'url': url, 'url_linktext': url_linktext, } return render(request, 'guestbook/main_page.html', template_values)
def main_page(request): guestbook_name = request.GET.get('guestbook_name', 'default_guestbook') guestbook_key = Greeting.get_key_from_name(guestbook_name) greetings_query = Greeting.all().ancestor(guestbook_key).order('-date') greetings = greetings_query.fetch(10) if users.get_current_user(): url = users.create_logout_url(request.get_full_path()) url_linktext = 'Logout' else: url = users.create_login_url(request.get_full_path()) url_linktext = 'Login' template_values = { 'greetings': greetings, 'guestbook_name': guestbook_name, 'url': url, 'url_linktext': url_linktext, } return direct_to_template(request, 'guestbook/main_page.html', template_values)
def testFilterByUser(self): anonymous_user = users.User(email="*****@*****.**") test_user = users.User(email="*****@*****.**") Greeting(content = "Testing", parent = guestbook_key(DEFAULT_GUESTBOOK_NAME), author = anonymous_user).put() Greeting(content = "Testing2", parent = guestbook_key(DEFAULT_GUESTBOOK_NAME), author = test_user).put() greetings_query = Greeting.query(ancestor=guestbook_key(DEFAULT_GUESTBOOK_NAME)).filter(ndb.GenericProperty('author') == anonymous_user) results = greetings_query.fetch(2) self.assertEqual(1, len(results)) self.assertEqual(anonymous_user, results[0].author)
def sign(request, context=None): error = [] # set the default logout location to the frontpage of guestbook request.GET = request.GET.copy() # make GET mutable request.GET[REDIRECT_FIELD_NAME] = reverse('guestbook.views.list') from guestbook.forms import MessageOnlyForm if request.method == 'POST': form = MessageOnlyForm(request.POST) if form.is_valid(): message = form.cleaned_data['message'] greeting = Greeting(author = request.user, message = message) greeting.put() return HttpResponseRedirect(reverse(list)) else: form = MessageOnlyForm() return render_to_response('guestbook/sign.html', { 'form': form }, RequestContext(request))
def form_valid(self, form, **kwargs): # how to get velue in the form guestbook_name = form.cleaned_data['guestbook_name'] content = form.cleaned_data['content'] greeting = Greeting(parent=guestbook_key(guestbook_name)) if users.get_current_user(): greeting.author = users.get_current_user() greeting.guestbook_name = guestbook_name greeting.content = content greeting.put() return super(SignView, self).form_valid(form, **kwargs)
def create_greeting(request): if request.method == "POST": greeting = Greeting() greeting.content = request.POST.get("content") greeting.isprivate = request.POST.get("isprivate") if greeting.isprivate == None: greeting.isprivate = 0 try: user_id = request.session["user_id"] except KeyError: user_id = User.objects.all().filter(username="******")[0].id greeting.author = User.objects.get(id=user_id) greeting.save() return HttpResponseRedirect("/greeting/")
def create_greeting(request): if request.method == 'POST': greeting = Greeting() greeting.content = request.POST.get('content') greeting.isprivate = request.POST.get('isprivate') if greeting.isprivate == None: greeting.isprivate = 0 try: user_id = request.session['user_id'] except KeyError: user_id = User.objects.all().filter( username='******')[0].id greeting.author = User.objects.get( id = user_id) greeting.save() return HttpResponseRedirect('/greeting/')
def get_context_data(self, **kwargs): guestbook_name = self.request.GET.get('guestbook_name', DEFAULT_GUESTBOOK_NAME) greetings_query = Greeting.query( ancestor=guestbook_key(guestbook_name)).order(-Greeting.date) greetings = greetings_query.fetch(10) if users.get_current_user(): url = users.create_logout_url(self.request.get_full_path()) url_linktext = 'Logout' else: url = users.create_login_url(self.request.get_full_path()) url_linktext = 'Login' context = super(IndexView, self).get_context_data(**kwargs) context['guestbook_name'] = guestbook_name context['greetings_query'] = greetings_query context['greetings'] = greetings context['url'] = url context['url_linktext'] = url_linktext return context
def get(self): guestbook_name = self.request.get('guestbook_name', DEFAULT_GUESTBOOK_NAME) greetings_query = Greeting.query( ancestor=guestbook_key(guestbook_name)).order(-Greeting.date) greetings = greetings_query.fetch(10) if users.get_current_user(): url = users.create_logout_url(self.request.uri) url_linktext = 'Logout' else: url = users.create_login_url(self.request.uri) url_linktext = 'Login' template_values = { 'greetings': greetings, 'guestbook_name': urllib.quote_plus(guestbook_name), 'url': url, 'url_linktext': url_linktext, } template = settings.JINJA_ENVIRONMENT.get_template('guestbook/index.html') self.response.write(template.render(template_values))
def sign_post(request): if request.method == 'POST': guestbook_name = request.POST.get('guestbook_name') guestbook_key = Greeting.get_key_from_name(guestbook_name) # get DB greeting = Greeting(parent=guestbook_key) # set author if users.get_current_user(): greeting.author = users.get_current_user().nickname() # set content greeting.content = request.POST.get('content') # put to DB greeting.put() # return guestbook page by GET METHOD return HttpResponseRedirect('/?' + urllib.urlencode({'guestbook_name': guestbook_name})) return HttpResponseRedirect('/')
def clean_message(self): message = Greeting.strip_message(self.cleaned_data['message']) try: Greeting.message.validate(message) except db.BadValueError, e: self._errors['message'] = ErrorList([force_unicode(e)])
def setUp(self): self.greeting = Greeting(content=u"a\n" * 30)
def list_entries(request): return object_list(request, Greeting.all())
def testInsertEntity(self): Greeting(content = "Testing", parent = guestbook_key(DEFAULT_GUESTBOOK_NAME)).put() greetings_query = Greeting.query(ancestor=guestbook_key(DEFAULT_GUESTBOOK_NAME)) self.assertEqual(1, len(greetings_query.fetch(2)))
def setUp(self): Greeting(content='This is a test greeting').save()
def get_queryset(self): guestbook_name = self.get_guestbook_name() return Greeting.query(ancestor=guestbook_key(guestbook_name)).order( -Greeting.date).fetch(5)
def list(request, context=None): greetings = Greeting.all().order('-date').fetch(10) return render_to_response('guestbook/list.html', { 'greetings': greetings }, RequestContext(request))