Has*_*aig 2 django django-urls django-views
我正在Django创建一个分类广告网站.单一视图功能可处理全球列表,城市列表,仅限易货的全球列表以及仅限易货的城市列表.这个观点叫做ads.
url模式按以下顺序编写(请注意,每个模式都有一个唯一的名称,尽管它与同一ads视图相关联):
urlpatterns = patterns('',
url(r'^buy_and_sell/$', ads,name='classified_listing'),
url(r'^buy_and_sell/barter/$', ads,name='barter_classified_listing'),
url(r'^buy_and_sell/barter/(?P<city>[\w.@+-]+)/$', ads,name='city_barter_classified_listing'),
url(r'^buy_and_sell/(?P<city>[\w.@+-]+)/$', ads,name='city_classified_listing'),
)
Run Code Online (Sandbox Code Playgroud)
问题是,当我点击classified_listing上面列表中命名的url时,函数ads会被调用两次.也就是我在终端中看到的内容:
[14/Jul/2017 14:31:08] "GET /buy_and_sell/ HTTP/1.1" 200 53758
[14/Jul/2017 14:31:08] "GET /buy_and_sell/None/ HTTP/1.1" 200 32882
Run Code Online (Sandbox Code Playgroud)
这意味着加倍处理.我认为urls.py返回匹配的第一个url模式.我做错了什么,解决这个问题的最佳方法是什么?所有其他调用按预期btw工作(即仅一次).
注意:如果我错过了什么,请询问更多信息.
了解这些类型的出现的很好的解释:https://groups.google.com/d/msg/django-users/CRMMYWix_60/KEIkguUcqxYJ
此问题与如何排序url模式无关urls.py.
正如问题评论中指出的那样,这与HTML模板中有问题的资产引用有关.
那是什么意思?
例如,尝试curl -i http://localhost:8000/example/ >> output.txt在您的终端.然后output.txt在您选择的编辑器中打开.现在搜索href或src属性值None(或以其他方式格式错误).这是创建双重呼叫的一个原因.这就是我的原因.我删除了这些,双重呼叫消失了.
关于如何在您的计算机上全面诊断此问题,这是一篇陈旧但相关的文章:https://groups.google.com/forum/#!msg/django-users/CRMMYWix_60/KEIkguUcqxYJ
快乐的测试.
| 归档时间: |
|
| 查看次数: |
1144 次 |
| 最近记录: |