Переопределенные варианты Django не проходят валидацию

Я переопределяю опцию choices, определенную в модели, которая является просто пустым кортежем.

Вот мой models.py

#For assigning Ciena loopbacks
class Dia_Address(models.Model):

    order_reference = models.ForeignKey(Order, null=True, on_delete=models.CASCADE)
    equipment_hostname = models.CharField(max_length=500, null=True, verbose_name="Equipment Hostname", help_text="Hostname of the DIA device.")
    subnet = models.CharField(max_length=200, null=True, choices=DIA_SUBNETS, help_text="Subnet in which the DIA device requires an address.")

Содержание моего файла forms.py, который переопределяет выбор модели.

class Dia_AddressForm(ModelForm):
        class Meta:
                model = Dia_Address
                fields = ['equipment_hostname', 'subnet']

        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
            #order_id = str(order_reference.id)
            dcn_address_handler = AddressHandler
            subnet_id = "94806"

            DIA_SUBNETS = ()
            NEW_SUBNETS = dcn_address_handler.get_subnet_data(dcn_address_handler, subnet_id)

            DIA_SUBNETS = NEW_SUBNETS + DIA_SUBNETS

            self.fields['subnet'].choices = DIA_SUBNETS

Содержание моего файла views.py

def addDia_Address(request, pk_test):
    order = Order.objects.get(id=pk_test)
    dia_address_form = Dia_AddressForm()
    if request.method == 'POST':
        dia_address_form = Dia_AddressForm(request.POST)
        dia_address_form.instance.order_reference = order
        if dia_address_form.is_valid():
            dia_address_form.save()
            return redirect('order', pk_test)

    context = {'dia_address_form':dia_address_form}
    return render(request, 'orchestration/dia_address_form.html', context)

Проблема в том, что эта форма не проходит валидацию. Я могу выбрать соответствующую опцию из выпадающего меню формы. Есть ли способ отключить эту проверку только для одного поля символов?

enter image description here

Валидация формы не проходит из-за пустого кортежа choices в вашей модели. Независимо от того, что вы задали в форме, валидация будет учитывать то, что диктует модель - в данном случае ничего! Удалите пустой кортеж, и ваша форма будет подтверждена.

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