【问题标题】:Django's Satchmo and flatpages issueDjango 的 Satchmo 和 flatpages 问题
【发布时间】:2010-12-28 02:14:46
【问题描述】:

我在 Satchmo 中配置平面页面时遇到问题。我以前在纯 django 应用程序中使用过它们,但现在它不起作用,当我尝试进入平面配置站点时返回 301 http 错误。

我做了什么来配置它:

  • 将中间件“django.contrib.flatpages.middleware.FlatpageFallbackMiddleware”作为列表最后添加到 MIDDLEWARE_CLASSES,
  • 在管理模块中配置示例页面。

简述文档中关于平面页面配置的内容。

我感到无助。不知道我该如何调试这个问题。对此有什么想法吗?

当然感谢您的帮助。

感谢 Peter 的建议,我已设法将问题范围缩小到我的 urls.py 文件,用于 satchmo 商店。

urlpatterns 只有一个条目:

(r'', 'django.views.generic.simple.redirect_to', {'url' : '/shop/'}),

此版本不起作用,而且会干扰平面页面。但是从 MIDDLEWARE_CLASSES 禁用平面页面并将其添加到 urls.py 就像下面的 sn-p 一样:

(r'^(?P<url>.*)$', 'django.contrib.flatpages.views.flatpage'),
(r'', 'django.views.generic.simple.redirect_to', {'url' : '/shop/'}),

但是下一个问题是从/ 重定向到/shop/。使用上述配置会导致无限循环。

也许你知道这种行为的原因(重定向覆盖平面页面),也许你可以建议一些可行的解决方案来解决这个问题,或者对/的请求应该做什么。

【问题讨论】:

    标签: django satchmo django-flatpages


    【解决方案1】:

    它返回 301?那是 Page Moved Permanently (HttpResponsePermanentRedirect) 并且在 flatpages 目录中没有对它的引用,所以我不认为它来自那里。事实上,在所有标准 1.1.1 版本中,只有大约 5 处对 HttpResponsePermanentRedirect 的引用。

    可能的方法:

    1. 注释掉 FlatPages 中间件,看看错误是否改变(我打赌它不会改变)。
    2. 尝试更改 MIDDLEWARE 类的顺序,看看是否有变化。

    当提出这样的问题时,最好通过显示来自 settings.py(或其他)的适用部分的确切代码以及提供其他内容(例如精确的 URL 和 URL)来获得非常的具体化。您尝试匹配的 py 模式。

    更新:

    好的,一些随机的想法:

    1. 模式(r'^(?P&lt;url&gt;.*)$', 'django.contrib.flatpages.views.flatpage'), 将匹配任何内容。之后的任何模式都将永远不会被看到。

    2. flatpages 不能通过直接调用来工作,它在中间件中发挥了作用。它查找 404 响应(未找到页面),然后查看该路径是否存在于其表中。如果是这样,它会调用一个视图来呈现页面等等。如果它找不到匹配项,它会让 404 继续通过中间件处理。

    3. 模式(r'', 'django.views.generic.simple.redirect_to', {'url' : '/shop/'}), 将匹配任何东西(我刚刚测试过)。如果要匹配空路径,请使用r('^$', etc.)。这是你无限循环的根源。

    如果您不熟悉正则表达式,那么 Django urls.py 文件可能看起来像 F*cking Magic。我建议非常简单地开始,一次添加一条规则。做一些快速测试以确保新规则 a) 匹配您希望它匹配的内容,并且 b) 不匹配 它不应该匹配的内容。特别是,确保文件中稍后出现的某些规则仍然可以访问。在这种情况下,他们不会是应该引起红旗的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多