【发布时间】:2015-08-24 17:45:11
【问题描述】:
我正在使用模型表单集一次添加模型的多个实例。我正在使用基于类的视图。这是我用于创建“库”的 views.py 部分
class LibraryCreate(View):
model = Library
def post(self, request, *args, **kwargs):
LibraryFormSet = modelformset_factory(
Library, form=create_library, extra=2)
if request.method == 'POST':
formset = LibraryFormSet(request.POST, request.FILES)
if formset.is_valid():
# do something with the formset.cleaned_data
pass
else:
formset = LibraryFormSet()
return render_to_response(
'trial1/library_form.html', {'formset': formset})
def get(self, request, *args, **kwargs):
LibraryFormSet = modelformset_factory(
Library, form=create_library, extra=2)
formset = LibraryFormSet(queryset=Library.objects.none())
return render_to_response(
'trial1/library_form.html', {'formset': formset})
这是我的模板
<form method="post" action="{% url "library_create" %}">
{% csrf_token %}
{{ formset.management_form }}
<table>
{% for form in formset %}
{{ form }}
{% endfor %}
</table>
<input type="submit" value="create" />
现在由于某种原因,当我尝试提交表单时,它返回 403 禁止,因为“CSRF 令牌丢失或不正确。”。我不明白为什么这不起作用并且它变得非常令人沮丧。
【问题讨论】:
-
你有加载csrf中间件吗? django.middleware.csrf.CsrfViewMiddleware
-
middleWare 已经存在于 settings.py @professorDante
标签: python django django-forms formset