Функция is_valid() в di_form работает неправильно
models.py
class DeviceInterface(models.Model):
MODULE_ID_CHOICES = (
('TenGigabitEthernet','TenGigabitEthernet'),
('FortyGigabitEthernet','FortyGigabitEthernet'),
('GigabitEthernet','GigabitEthernet'),
('Ethernet','Ethernet'),
)
moduletype = models.CharField(max_length = 50,choices = MODULE_ID_CHOICES)
firstportid = models.CharField(max_length=50)
lastportid = models.CharField(max_length=50)
I2DKEY = models.ForeignKey(Device, on_delete=models.CASCADE) ##The key to link up the tables
def __str__(self):
return self.moduletype
forms.py
class DeviceInterfaceForm(ModelForm):
class Meta:
model= DeviceInterface
fields= ['moduletype', 'firstportid', 'lastportid']
labels = {
"moduletype":"Module Type",
"firstportid": "First Port ID",
"lastportid": "Last Port ID"
}
Часть файла views.py
if di_form.is_valid():
deviceI=di_form.save(commit=False)
print(deviceI)
for instances in deviceI:
instances.I2DKEY=new_device
instances.save()
return render(request, 'interface/device_added.html',{'devices':Device.objects.all()})
else:
print(deviceI.errors)
У меня есть следующие коды, приведенные выше, несколько недель назад они работали. Но сейчас он не работает. Когда я отправляю форму, она каким-то образом переходит is_valid()=True. Это означает, что мои текстовые поля для этой модели могут быть пустыми, а форма все равно может быть сохранена. PS: На этой веб-странице есть в общей сложности 3 различных формы. Поэтому если все поля этой формы пусты, то вместо них сохраняются другие модели.
Может ли кто-нибудь объяснить мне, что я делаю неправильно?