Функция 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 различных формы. Поэтому если все поля этой формы пусты, то вместо них сохраняются другие модели.

Может ли кто-нибудь объяснить мне, что я делаю неправильно?

Вернуться на верх