Django视图被调用两次

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

Has*_*aig 5

此问题与如何排序url模式无关urls.py.

正如问题评论中指出的那样,这与HTML模板中有问题的资产引用有关.

那是什么意思?

例如,尝试curl -i http://localhost:8000/example/ >> output.txt在您的终端.然后output.txt在您选择的编辑器中打开.现在搜索hrefsrc属性值None(或以其他方式格式错误).这是创建双重呼叫的一个原因.这就是我的原因.我删除了这些,双重呼叫消失了.

关于如何在您的计算机上全面诊断此问题,这是一篇陈旧但相关的文章:https://groups.google.com/forum/#!msg/django-users/CRMMYWix_60/KEIkguUcqxYJ

快乐的测试.