【问题标题】:django - urlconf request mapping and views not reacheddjango - urlconf 请求映射和未达到的视图
【发布时间】:2011-11-07 20:22:53
【问题描述】:

我在模板中有一个表单,但它无法访问对应的视图。方法是 GET。我也尝试向它传递一个参数来填充查询字符串,但请求没有到达映射视图。这是views.py、urls.py和模板:

template.html

<div id="search-new-btn">
    <form action="/anagrafica/new/" method="get">
        <input type="submit" title="Crea nuovo soggetto anagrafica" value="Nuovo" />
    </form>
</div>

views.py

def anagrafica_new(request):

    if request.method == 'GET':      
        form = AnagraficaForm()
        sub = 'Nuovo soggetto anagrafica'
        dict = {'sub':sub,'form':form}
        return render_to_response('anagrafica_form.html', dict, context_instance=RequestContext(request))

urls.py

...
url(r'^anagrafica/new/',('gpf1.views.anagrafica_new')),
...

(http://openpaste.org/05b157c1)

无论如何,我也尝试从回调 url.py 映射中删除 (),但它没有任何改变。 该请求似乎被映射了,因为我的调试服务器打印了这个:

"GET /anagrafica/new/? HTTP/1.1" 200 17310

但仅此而已。浏览器保持在同一页面上;我还在视图中放置了一个打印语句,但从未达到。有什么想法吗?

谢谢, 卢克

【问题讨论】:

  • 也许你应该在 urls.py 上通过 anagrafica_new 更改 anagrafica/new/
  • 威廉,你能解释一下吗?
  • url(r'^anagrafica/new/', 'gpf1.views.anagrafica_new')。我不确定你的问题是什么,模板被渲染了?

标签: python django django-forms get django-views


【解决方案1】:

正如Willian 建议的那样,不要将视图放在元组中。您缺少的另一件事是正则表达式末尾的 $ 即:

urls.py

...
url(r'^anagrafica/$','gpf1.views.anagrafica'),
...
url(r'^anagrafica/new/$','gpf1.views.anagrafica_new'),
...

确保包含 gpf1 包的文件夹在 Pythonpath 变量中(可由 python 访问)。

编辑: 随后我注意到你有一个根 url 映射

url(r'^anagrafica/','gpf1.views.anagrafica')

由于您最后缺少 $,Django 将尝试将 anagrafica/anything here 映射到 gpf1.views.anagrafica,这可能不是您想要的。考虑重新阅读正则表达式和 Django 的 url 映射文档,因为它会使事情变得更清晰。

【讨论】:

  • 它不起作用。无论如何,这是我的 urlconf:openpaste.org/3F72093f。如您所见,还有其他类似的 url 映射(例如 /preventivo/new/),其中 get requets 和 gat 参数未使用 python 正则表达式映射。但他们工作......
  • 原因是你有 ``` url(r'^anagrafica/', ('gpf1.views.anagrafica')),``` 它将映射任何以anagrafica/ 开头的东西包括anagrafica/new/ 到 gpf1.views.anagrafica 视图。再次 $ 到它的结尾。查看更新的答案。
猜你喜欢
  • 2017-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-17
  • 2020-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多