如何在views.py中的urls.py中添加删除网址

时间:2011-10-07 06:44:12

标签: python django

我有一个名为Agency.agency的模型,其中有一个名为URL的字段,例如我添加了2个代理商,第一个将A的值赋予URL,第二个代理将B的值赋予URL字段。现在我想要覆盖views.py索引中的save_model方法,在添加代理时将Agencie的URL添加到urls.py,如下所示:

(r'^airAgency/A/$','airAgency.views.index'),
(r'^airAgency/B/$','airAgency.views.index'),

所以,当输入http://127.0.0.1:8080/airAgency/A时,索引视图会检测我想访问哪个代理商并将其数据传递给该页面。现在我有2个问题:

  1. 如何在views.py中覆盖保存方法时,如何在urls.py中添加/删除网址
  2. 当用户在浏览器中输入URL时,我如何解析它并找出他想要访问哪个代理商以发送该代理商信息。 关于第一个问题,我搜索了很多,但我没有找到任何东西。第二个问题我用Google搜索,我发现如何解析请求的URL,但你认为根据其URL字段在代理表中进行字符串搜索是一个好方法?

1 个答案:

答案 0 :(得分:1)

正如其他人所说和/或指出的那样,请勿将特定代理商硬编码到您的urls.py中 通过在网址中添加变量来保持通用和干燥

# urls
(r'^airAgency/(?P<name>[a-zA-Z0-9]+)/$', 'airAgency.views.index'),
   # this passes the value there as 'name' to the view for index

#views
def index(request, name):   # it needs to know name will be passed to it
    some_query = Agency.objects.filter( agency_name = name )
    #should also add catching for unknown objects to go to 404s
    ...
    return some_sort_of_http_response

docs

中有更多示例