Django表单失败,并带有“ id”:此字段为必填。'

时间:2019-11-15 12:18:42

标签: django django-models django-forms formset

Django应该自动增加字段ID(并自动创建)。

我创建了一个模型:

 class SubscribtionData(models.Model):
    client = models.ForeignKey(Client, on_delete=models.DO_NOTHING, null=True)
    more_to_sheep = models.PositiveIntegerField(blank=True)
    shipping_comments = models.TextField(blank=True)

    history = HistoricalRecords()

是这样的:

class AddSubscriptionData(forms.ModelForm):
    class Meta:
        model = SubscribtionData
        fields = ('more_to_sheep', 'shipping_comments',)
        widgets = {
            'more_to_sheep': forms.NumberInput(attrs={'class':'form-control', 'placeholder': 'How Manny Need To Be Sheeped'}),
            'shipping_comments': forms.Textarea(attrs={'class':'form-control', 'placeholder': 'Commant For Sheepment'}),
        }

我有一些非常有线的问题...

我在同一页面上有多个表单和表单集,因此我必须在每个表单上使用前缀。 当我直接使用AddSubscriptionData时,我什么也不能提交(将AddSubscriptionData识别为Client(即使前缀是不同的),并且因为它们具有不同的字段,所以.save()返回None ...

仅当我将此表单用作这样的表单集时: FormsetAddSubscriptionData = inlineformset_factory(Client, SubscribtionData,form=AddSubscriptionData, extra=1, max_num=1, fields=('more_to_sheep', 'shipping_comments',), can_delete=True) 麦芽汁(部分地)...

在创建新客户端时,它会将表单识别为AddSubscriptionData对象并保存,但是由于某些未知原因,它将字段id(自动生成并且应该自动递增)保留为没有。

当我尝试编辑此表单并且Django对我大吼大叫时,就会出现此问题: [{'id': ['This field is required.']}]

为什么会这样? 那是Django错误还是我犯了一些错误?

0 个答案:

没有答案