0

我的 flash-pyamf-gae 效果很好。现在我想按照谷歌教程创建一个经典的 Django 表单:http ://code.google.com/appengine/articles/djangoforms.html 我做了但是当我发布在我的表单中输入的数据时,我收到以下消息来自 pyamf :

格式错误的流 (amfVersion=110)

400 Bad Request 请求正文无法成功解码。

追溯:

回溯(最后一次调用):
文件“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: Malformed stream (amfVersion=110) Malformed stream (amfVersion= 110)

现在这对我来说很有意义,因为我从表单发送的不是 amf。我该如何处理?

注意:我觉得问题来自我的 app.yaml 我没有特殊的处理程序来告诉应用程序以不同的方式处理此表单......格式错误的流(amfVersion = 110)

4

1 回答 1

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))   
于 2010-11-13T14:59:48.777 回答