Django:即使我的表单有效,在打印cleaned_data时我也有一些字段为空

时间:2018-08-09 08:48:32

标签: django django-models django-forms cleaned-data

我的模特:

class sarl(models.Model):
    denomination_social = models.CharField(max_length=200,blank=True)
    numero_certificat = models.CharField(max_length=15,blank=True)
    myfile = models.FileField(blank=True)
    adresse = models.CharField(max_length=250,blank=True)
    activite = models.CharField(max_length=100,blank=True)
    objet = models.CharField(max_length=100,blank=True)
    autreactiv = models.CharField(max_length=1000,blank=True)
    ville = models.CharField(max_length=20,blank=True, null=True)
    exercice_dip = models.BooleanField(default=False,blank=True)
    capital_social=models.FloatField(max_length=15,blank=True)
    gerant_representant = models.ForeignKey(PerP,on_delete=models.CASCADE,blank=True, null=True)
    gerant_sep = models.ForeignKey(gerant_separe,blank=True, null=True,on_delete=models.CASCADE)
    Typesarl = models.BooleanField(default=False,blank=True)
    nbr_associe = models.CharField(max_length=6,default="--")
    nbr_gerants = models.CharField(max_length=6,default="--")

我的模型形式:

class sarlform(forms.ModelForm):
    nbr_associe = forms.ChoiceField(choices=NBR_ASSOCIE, widget=forms.Select(attrs={'onchange':'NbrAssocie()'}),required = False)
    autreactiv = forms.CharField(widget=forms.Textarea(attrs={'cols': 80, 'rows': 7}))

    class Meta:
        model = sarl
        fields = (
            'denomination_social', 'numero_certificat', 'adresse',
            'activite', 'autreactiv', 'capital_social', 'nbr_associe',
        )

当我想在views.py上发布表单的清理数据时,我的表单有效,并且我获取了所有字段数据,但没有获取adresse字段。

def saveToBase(request):
    form = sarlform(request.POST)
    if form.is_valid(): 
        print(request.POST.get('CuisineList'))
        print("sarl form is valid !")
        print(form.cleaned_data)
        print(request.POST['adresse'])
        form.save()  

这是我从打印干净的数据中得到的:

{'denomination_social': 'fkrbvirbv', 'numero_certificat': 'bybyb',
 'adresse': '', 'ville': None, 'activite': 'gggg', 'autreactiv': 'gregetg',
 'capital_social': 140000.0, 'nbr_associe': '2'}

我已经在这里停留了几个小时,但实际上并没有弄清楚这个问题的原因是什么。任何帮助,请给力。

1 个答案:

答案 0 :(得分:0)

我发现问题出在哪里: 在我的HTML中,我分别两次调用Adresseville,所以当我发布清理后的数据时,它仅采用默认值

我的HTML表单是:

<div id="domiciliation" style="display: none">
                    <p>Adresse : {{form.adresse}}</p>
                    <p>Ville : {{form.ville}}</p>
                </div>
<div id="siege_social" style="display: none">
                    <p>Adresse : {{form.adresse}}</p>
                    <p>Ville : {{form.ville}}</p>
                </div>

当我为第二个div创建不同的字段时,它的工作原理如下:

<div id="domiciliation" style="display: none">
                        <p>Adresse : {{form.adresse}}</p>
                        <p>Ville : {{form.ville}}</p>
                    </div>
 <div id="siege_social" style="display: none">
                    <p>Adresse : {{form.aad}}</p>
                    <p>Ville : {{form.vi}}</p>
                </div>

我要感谢大家的重播。