我正在Django创建一个分类广告网站。单一视图功能可处理全球列表,城市列表,仅限易货的全球列表以及仅限易货的城市列表。此视图称为if existingTextHasDecimalSeparator != nil && replacementTextHasDecimalSeparator != nil {
return false
} else {
return true
}
。
网址模式按以下顺序编写(请注意,每个网址都有一个唯一的名称,尽管它与同一个ads
视图相关联):
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'),
)
的网址时,函数classified_listing
被称为两次。即这是我在终端上看到的内容:
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
会返回匹配的第一个url模式。我做错了什么,解决这个问题的最佳方法是什么?所有其他呼叫按预期btw工作(即仅一次)。
注意:如果我遗漏了某些内容,请询问更多信息。
理解这些类型的出现有很好的解释:https://groups.google.com/d/msg/django-users/CRMMYWix_60/KEIkguUcqxYJ
答案 0 :(得分:5)
此问题与if (stringValue.trim().equals("") || stringValue.equals(null))
{
Log.i("valuesUpdate", "Yes");
editTextPreference.setText(Build.MODEL + "_1");
Log.i("valuesUpdate", editTextPreference.getTitle() + " = " + editTextPreference.getText());
editTextPreference.setSummary(Build.MODEL + "_2");
// HERE
return false;
}
中的网址格式排序无关。
正如问题评论中指出的那样,这与HTML模板中有问题的资产引用有关。
这是什么意思?
例如,在终端中尝试urls.py
。然后在您选择的编辑器中打开curl -i http://localhost:8000/example/ >> output.txt
。现在搜索output.txt
或href
属性,其值为src
(或以其他方式格式错误)。这是创建双重呼叫的一个原因。这就是我的原因。我删除了这些,双重呼叫消失了。
关于如何在您的机器上全面诊断此问题,这是一篇陈旧但相关的文章:https://groups.google.com/forum/#!msg/django-users/CRMMYWix_60/KEIkguUcqxYJ
快乐的测试。
答案 1 :(得分:0)
由于我无法在其他答案上发表评论,只是为了向将来的流浪者添加,对我来说,“问题”的格式正确,但浏览器却在指示<iframe src="#"..>
标签。在django服务器上,视图呈现了两次,一次是通过原始请求呈现的,然后是通过隐藏的iframe元素呈现的,该元素是我稍后在页面用法中用于某些模式弹出窗口的。
在清空src
之类的<iframe src=""..>
属性之后,不再启动第二个请求,我的模式也可以正常工作。
解决方案实际上是从[https://groups.google.com/forum/#!msg/django-users/CRMMYWix_60/KEIkguUcqxYJ][1]之前答案中已经张贴的链接 解释如下:
请注意,这是一个URI。那意味着被检索到的东西。以来 您使用了值“ #fff”,浏览器会将其解释为 对当前页面的引用(#fff是锚点,未传递给 服务器)。如此,第二个请求被提出。
iframe src#(锚点)正在指示浏览器再次加载相同的URL,对于我来说是iframe元素。
我确实确实有几个style
元素,里面有#fff
种颜色,但不是这样,因为浏览器足够聪明,可以识别出它不是锚点,所以不是。
使用可用的工具(仅限浏览器),我发现很容易调试并在浏览器开发人员工具的“网络”标签上找到这些启动href / src属性-在Chrome中,只需单击相应行的启动器链接即可-您可以从发起请求的页面源到同一URL的确切行。