Python Piramit uygulamasında bazı HTML formlarım var. JavaScript etkinleştirildiğinde ve JavaScript devre dışı olduğunda AJAX aracılığıyla çalışmasını isterim. Artık AJAX ve normal form yazıları için farklı görünümler kullanıyorum, ancak kod, bu işlevler için yanıt dışında hemen hemen aynı görünüyor. Ben eğer varsa hatayı işlemek ve html bunları göstermek gerekirAjax/html formunu işlemek için Python Piramit görünümlerini nasıl birleştirir POST'lar
def ajax_ok(self, msg):
return Response(body=msg)
def ajax_error(self, msg):
return HTTPInternalServerError(body=msg)
@action(xhr=True, renderer='json', name='ftp')
def ftp_ajax(self):
log.debug('View: %s', 'ftp (ajax)')
if 'form.submitted' in self.params:
try:
self.config.save(self.params)
except:
return self.ajax_error('some error')
else:
return self.ajax_ok('ok')
@action()
def ftp(self):
if 'form.submitted' in self.params:
try:
self.config.save(self.params)
except:
self.request.session.flash('error; ' + msg)
else:
self.request.session.flash('success; ' + msg)
return {'content': render('templates/ftp.pt', {'ftp':
self.config.ftp})}
: Bu (sınıf gövdesinin) gibi görünüm sınıfını kullanın. Belki farklı istek tipi için farklı yanıt gönderecek olan finished_callback veya kendi işleyicim kullanmalıyım?
Sadece 4 kod yolunun sadece 1 tanesi aynı gibi görünüyor, bu yüzden birleştirmeyi umduğunuzdan emin değilim. "Kaydet" işlevinin tümünü ortak bir yerde ele alacak kadar iyi olduğunu ve hataların bağımsız olarak işlenmesini sağladığını söyleyebilirim. –