0

嗨,我有一个用于在我的网站上切换语言的 html 模板:

<form action="{{ SITE_URL }}i18n/setlang/" name="postlink" method="post">{% csrf_token %}
    <ul class="lang">
        <li class="lang">
            {% for lang in LANGUAGES %}
                {% if lang.0 != LANGUAGE_CODE %}
                    <input type="hidden" name="language" value="{{ lang.0 }}">
                    <a class="active" href=# onclick="submitPostLink()">{{ lang.1 }}</a>
                {% else %}
                    {{ lang.1 }}
                {% endif %}
                {% if forloop.last %}{% else %} &nbsp; | &nbsp;{% endif %}
            {% endfor %}
        </li>
    </ul>
</form>

所有这些都可以在开发服务器以及生产和生产中正常工作,在www.mysite.com/project/的正常 url

但是,如果我尝试 project.mysite.commysite.com.project,我会正常访问我的主页,但更改语言会导致 403 Forbidden 失败。

我是否需要在setlang某个地方定义我需要的根 url 变体?

非常感谢任何帮助。

4

1 回答 1

2

由于这些 url 在不同的子域上运行,您应该检查 CSRF cookie 的域设置CSRF_COOKIE_DOMAINhttps ://docs.djangoproject.com/en/1.3/ref/contrib/csrf/#subdomains

于 2012-05-21T15:43:45.900 回答