Django并使用处理程序从查询字符串中获取信息

时间:2012-07-06 14:42:24

标签: python django google-app-engine google-cloud-datastore

我从显示的列表中处理记录的最佳方法有点迷失。我允许用户点击我的template.html中以下列方式在查询字符串中包含记录ID的链接:

<a href="/edit_record?id={{company.key.id}}">Edit</a>

我有我的经纪人:

application = webapp.WSGIApplication([
  ('/', DisplayMaphandler),
  ('/companyadd', AddCompanyHandler),
  ('/validatecompanies', Validationhandler),
  ('/addcompanycategories', AddCompanyCategoriesHandler),
  ('/editcompany', EditCompanyHandler),
  ('/edit_record', EditRecordHandler),
], debug=True)

我希望得到id,但是这段代码显然是错误的,根本不起作用:

class EditRecordHandler(webapp.RequestHandler):    
    def get(request):
        myid = request.GET.get('id', '')
        self.response.out.write(myid)

我应该如何从这个班级获得id。另外我在urlconf上看到了一些东西,我是否需要使用这样的东西。我知道这个类是在点击一个链接时触发的,但是想要找到使用RequestHandler而不是def函数的最聪明的方法。我得到的错误是:

AttributeError: 'EditRecordHandler' object has no attribute 'GET'

由于

2 个答案:

答案 0 :(得分:2)

更改EditRecordHandler get方法,如下所示:

class EditRecordHandler(webapp.RequestHandler):    
    def get(self):
        myid = self.request.get('id')
        self.response.out.write(myid)

答案 1 :(得分:0)

请随意编辑..

urls.py中的

urlpatterns = patterns('',
    (r'^/edit_record/', EditRecordHandler),
)

使用request.method =='GET',您忘了(自我,请求):

class EditRecordHandler():    
    def get(self,request):
        if request.method == 'GET':
            myid = self.request.get('id')