簡體   English   中英

Google Apps引擎Django表格pyamf

[英]google apps engine django form pyamf

我的flash-pyamf-gae運作良好。 現在,我想按照Google教程創建經典的Django表單: http : //code.google.com/appengine/articles/djangoforms.html我這樣做了,但是當我發布在表單中輸入的數據時,我收到以下消息來自pyamf:

流格式錯誤(amfVersion = 110)

400錯誤的請求無法成功解碼請求正文。

追溯:

追溯(最近一次通話):
文件“ C:\\ Users \\ Giil \\ Documents \\ dev \\ gae \\ moviesbuilder \\ pyamf \\ remoting \\ gateway \\ google.py”第79行,位於post logger = self.logger,timezone_offset = timezone_offset中)
文件“ C:\\ Users \\ Giil \\ Documents \\ dev \\ gae \\ moviesbuilder \\ pyamf \\ remoting_ init _.py”,行640,在解碼msg.amfVersion中)DecodeError:格式錯誤的流(amfVersion = 110)格式錯誤的流(amfVersion = 110 )

現在這對我很有意義,因為我從表格發送的不是amf。 我該如何處理?

注意:我感覺問題出在我的app.yaml上,我沒有特殊的處理程序來告訴應用程序以不同的方式處理此表單...格式錯誤的流(amfVersion = 110)

我用自己的方式解決了這個問題:

我的表格(帖子指向其他功能,而不僅僅是Google示例中的“ /”):

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>')

然后我需要寫到dataStore並顯示列表:

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))   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM