繁体   English   中英

Python Django - Select 选择无效

[英]Python Django - Select Choice is not Valid

当我想将表单保存在新的 CharFields(带有选项)上时,Django 告诉我 Select 选项无效。 当我选择另一个适用于其他模型的选择列表时,它确实可以正常工作。

模型.py:

class productsdefinition(models.Model):
    Products = models.CharField(max_length=Lenght200, default='NA')
    Status = models.CharField(max_length=Lenght10, choices=Utilities_CSP.PRODENG_CHOICES)
    Tester = models.ForeignKey(tester, on_delete=models.CASCADE, null=True)
    Board = models.ForeignKey(board, on_delete=models.CASCADE, null=True)
    TestProgram = models.CharField(max_length=Lenght200, default='')
    ProgramLoad = models.ForeignKey(ProgramLoad, on_delete=models.CASCADE, null=True)
    ListProgramEG = Utilities_CSP.ExtractProgEG()
    Probecard = models.CharField(verbose_name='Probe Card',max_length=Lenght200, choices=ListProgramEG, null=True)
    ProgramEG = models.CharField(verbose_name='Program EG',max_length=Lenght200, choices=ListProgramEG, null=True)

forms.py:

class ProducDefForm(forms.ModelForm):
    global tempfield
    i = 0
    tempfield = []
    
    for var in list(vars(productsdefinition()).keys()):
        if i <= 1:
            pass
        elif var == "Date_added":
            pass
        elif var == "LastModified":
            pass
        elif var.find("_id") != -1:
            var = var.replace("_id","")
            tempfield.append(str(var))
        else:
            tempfield.append(str(var))
        i = i + 1
    class Meta:
        model = productsdefinition
        fields = tempfield

    def __init__ (self, *args, **kwargs):
        super(ProducDefForm, self).__init__(*args, **kwargs)
        ListProbecard = Utilities_CSP.ExtractProgEG()
        self.fields['Probecard'].choices = ListProbecard

所以我的字段 ProgramEG 工作正常,但是当我尝试放置(选择)列表以确保字段 Probecard 工作时,它停止工作并告诉我Select Choice in not valid,.... 你知道错误可能在哪里吗? 它在数据库的表中吗?

编辑:我解决了我的问题:我更改了 Probecard def init (self, *args, **kwargs): super(ProducDefForm, self) 的 model 字段。 init (*args, **kwargs) ListProbecard = Utilities_CSP.ExtractListCAPChoice() self.fields['Probecard'] = forms.ChoiceField(choices=ListProbecard)

感谢您的观看时间。

我解决了我的问题:我更改了 Probecard def init (self, *args, **kwargs): super(ProducDefForm, self).init(*args, **kwargs) ListProbecard = Utilities_CSP.ExtractListCAPChoice() self 的 model 字段.fields['Probecard'] = forms.ChoiceField(choices=ListProbecard)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM