Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internationalization Django1.10-/i18n/setlang/CSRF令牌缺失或不正确_Internationalization_Csrf_Django 1.10 - Fatal编程技术网

Internationalization Django1.10-/i18n/setlang/CSRF令牌缺失或不正确

Internationalization Django1.10-/i18n/setlang/CSRF令牌缺失或不正确,internationalization,csrf,django-1.10,Internationalization,Csrf,Django 1.10,在语言切换器窗体中选择语言后,我得到一个CSRF错误: 表单位于base.html <form action="{% url 'set_language' %}" method="post" class="form-inline"> {% csrf_token %} <input name="next" type="hidden" value="" /> <div class="form-group"> <div class="inp

在语言切换器窗体中选择语言后,我得到一个CSRF错误:

表单位于base.html

<form action="{% url 'set_language' %}" method="post" class="form-inline">
  {% csrf_token %}
  <input name="next" type="hidden" value="" />
  <div class="form-group">
    <div class="input-group">
      <div class="input-group-addon"><i class="fa fa-globe" aria-hidden="true"></i></div>
      <select name="language" class="form-control" id="lang-switcher">
        {% get_current_language as LANGUAGE_CODE %}
        {% get_available_languages as LANGUAGES %}
        {% get_language_info_list for LANGUAGES as languages %}
        {% for language in languages %}
          <option value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected="selected"{% endif %}>
            {{ language.name_local }} ({{ language.code }})
          </option>
        {% endfor %}
      </select>
    </div>
  </div>
</form>
我的模板文件art.html如下所示:

{% extends "base.html" %}
{% load staticfiles %}
{% load i18n %}

{% block content %}
  ....
{% endblock %}
from django.template import RequestContext
from django.shortcuts import render_to_response

from .models import Exhibition, Picture

def index(req):
  highlight = Exhibition.objects.latest()
  exhibitions = Exhibition.objects.all()[1:]
  return render_to_response('art.html', RequestContext(req,{'highlight': highlight, 'exhibitions': exhibitions}))
urlpatterns = [
  url(r'^i18n/', include('django.conf.urls.i18n')),
  url(r'^admin/', admin.site.urls),
  url(r'^art/', index),
  url(r'^$', views.flatpage, {'url': '/home/'}, name='home')
]
视图。py如下所示:

{% extends "base.html" %}
{% load staticfiles %}
{% load i18n %}

{% block content %}
  ....
{% endblock %}
from django.template import RequestContext
from django.shortcuts import render_to_response

from .models import Exhibition, Picture

def index(req):
  highlight = Exhibition.objects.latest()
  exhibitions = Exhibition.objects.all()[1:]
  return render_to_response('art.html', RequestContext(req,{'highlight': highlight, 'exhibitions': exhibitions}))
urlpatterns = [
  url(r'^i18n/', include('django.conf.urls.i18n')),
  url(r'^admin/', admin.site.urls),
  url(r'^art/', index),
  url(r'^$', views.flatpage, {'url': '/home/'}, name='home')
]
url.py如下所示:

{% extends "base.html" %}
{% load staticfiles %}
{% load i18n %}

{% block content %}
  ....
{% endblock %}
from django.template import RequestContext
from django.shortcuts import render_to_response

from .models import Exhibition, Picture

def index(req):
  highlight = Exhibition.objects.latest()
  exhibitions = Exhibition.objects.all()[1:]
  return render_to_response('art.html', RequestContext(req,{'highlight': highlight, 'exhibitions': exhibitions}))
urlpatterns = [
  url(r'^i18n/', include('django.conf.urls.i18n')),
  url(r'^admin/', admin.site.urls),
  url(r'^art/', index),
  url(r'^$', views.flatpage, {'url': '/home/'}, name='home')
]
我可以加载没有问题的页面,然后当我将表单提交到switch language时,我会得到CSRF错误

编辑


我必须补充一点,当我在根目录下时,表单运行良好。

我最终通过在视图中使用不同的渲染函数解决了它:

  return render(req, 'art.html', {'highlight': highlight, 'exhibitions': exhibitions})

谢谢你的解决方案!我也有同样的问题,非常奇怪的行为。清除浏览器缓存为我解决了这个问题。