Я использую модели форм, чтобы сразу добавить несколько экземпляров модели. и я использую представления на основе классов. Это моя views.py часть для создания «библиотеки»modelformset_factory и токен csrf отсутствуют или некорректны
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 – professorDante
middleWare уже существует в настройках.py @professorDante – user3567826