Неверный набор форм Django
У меня есть django formset, когда я ввожу только один ряд данных, он работает. Если я пытаюсь ввести две или более строк данных, при отправке формы я получаю ошибку:
ManagementForm data is missing or has been tampered with. Missing fields: form-TOTAL_FORMS, form-INITIAL_FORMS.
Читая похожие вопросы, кажется, что отсутствует management_form, но в моем коде она присутствует... есть идеи? Вот мой код:
models.py и forms.py
#models.py
from django.db import models
class Station(models.Model):
id_station = models.IntegerField(blank=False)
station_name = models.CharField(max_length=30, blank=False)
unity_name = models.CharField(blank=False, max_length=10)
id_sensor = models.IntegerField(blank=False)
sensor_name = models.CharField(max_length=50, blank=False)
class Meta:
db_table = 'station'
def __str__(self):
return self.name
# forms.py
from django import forms
from .models import Station
from django.forms import formset_factory
class StationForm(forms.Form):
id_station = forms.IntegerField(label='id della stazione') #, widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Enter Book Name here'}))
station_name = forms.CharField(label='nome stazione', max_length=30,
widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'nome stazione'}))
unity_name = forms.CharField(label='nome unita', max_length=10,
widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'nome unita'}))
id_sensor = forms.IntegerField(label='id sensore')
sensor_name = forms.CharField(label='nome sensore', max_length=50,
widget=forms.TextInput(attrs={'placeholder': 'nome sensore'}))
StationFormset = formset_factory(StationForm, extra=1)
views.py
from django.template import RequestContext
from django.shortcuts import render, redirect
from .forms import StationFormset
from .models import Station
def new_station(request):
context = RequestContext(request)
template_name = 'station.html'
heading_message = 'Add a new station'
if request.method == 'GET':
formset = StationFormset(request.GET or None)
elif request.method == 'POST':
formset = StationFormset(request.POST or None)
print('formset: ', formset.non_form_errors())
if formset.is_valid():
for form in formset:
id_station = form.cleaned_data.get("id_station")
station_name = form.cleaned_data.get("station_name")
unity_name = form.cleaned_data.get("unity_name")
id_sensor = form.cleaned_data.get("id_sensor")
print('id sensor: ', id_sensor)
sensor_name = form.cleaned_data.get("sensor_name")
# save instance
#form.save()
return redirect('new_station')
return render(request, template_name, {
'formset': formset,
'heading': heading_message,
})
station.html
Читая похожие вопросы, кажется, что в html шаблоне отсутствует форма управления_формой, но в моем коде она присутствует... есть идеи?