2010-11-08 22 views
0

我的flash-pyamf-gae很好。 現在我想通過以下的谷歌教程打造經典的Django形式:http://code.google.com/appengine/articles/djangoforms.html 我做了,但是當我發佈在我的表單中輸入的數據我從PyAMF的以下信息:google應用程序引擎django表單pyamf

Malformed stream (amfVersion=110)

400 Bad Request The request body was unable to be successfully decoded.

Traceback:

Traceback (most recent call last):
File "C:\Users\Giil\Documents\dev\gae\moviesbuilder\pyamf\remoting\gateway\google.py", line 79, in post logger=self.logger, timezone_offset=timezone_offset)
File "C:\Users\Giil\Documents\dev\gae\moviesbuilder\pyamf\remoting_init_.py", line 640, in decode msg.amfVersion) DecodeError: Malformed stream (amfVersion=110)Malformed stream (amfVersion=110)

現在做SENS對我來說,因爲我從我的表單發送的不是amf。我該如何處理這個問題?

注:我有一個問題都來自於我的app.yaml 我沒有專門的處理程序告訴應用程序以不同的方式處理這種形式的感覺...畸形流(amfVersion = 110)

回答

0

我解決這個問題我自己的方法:

我的表(後指向另一個函數,而不僅僅是「/」,如谷歌爲例):

class Projects(webapp.RequestHandler): 
    def get(self): 
     self.response.out.write('<html><body>' 
           '<form method="POST" ' 
           'action="/ProjectsPage">' 
           '<table>') 
     self.response.out.write(ProjectForm()) 
     self.response.out.write('</table>' 
           '<input type="submit">' 
           '</form></body></html>') 

然後呢,我需要寫入數據存儲,顯示列表:

class ProjectsPage(webapp.RequestHandler): 
    #getting data and saving 
    def post(self): 
     data = ProjectForm(data=self.request.POST) 
     if data.is_valid(): 
      # Save the data, and redirect to the view page 
      entity = data.save(commit=False) 
      entity.added_by = users.get_current_user() 
      entity.put() 
      self.redirect('/projects.html') 
     else: 
      # Reprint the form 
      self.response.out.write('<html><body>' 
            '<form method="POST" ' 
            'action="/">' 
            '<table>') 
      self.response.out.write(data) 
      self.response.out.write('</table>' 
            '<input type="submit">' 
            '</form></body></html>') 
    #display list of projects 
    def get(self): 
     query = db.GqlQuery("SELECT * FROM Project WHERE added_by=:1 ORDER BY name",users.get_current_user()) 
     template_values = { 
      'projects': query, 
     } 
     path = os.path.join(os.path.dirname(__file__), 'templates/projects.html') 
     self.response.out.write(template.render(path, template_values)) 
相關問題