我正在使用模型表单集一次添加一个模型的多个实例。我正在使用基于类的视图。这是我的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" />




现在由于某种原因,当我尝试提交表单时,由于“ CSRF令牌丢失或不正确”,它返回了403禁止访问。我不明白为什么这不起作用,并且它真的令人沮丧。

最佳答案

使用render代替render_to_response,以便将请求包含在模板上下文中。

return render(request, 'trial1/library_form.html', {'formset': formset})

关于python - modelformset_factory和csrf token 丢失或不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30739981/

10-10 14:58