每天努力一点点,坚持下去 ------ 博客首页

Django创建数据时报错解决

报错内容:

复制代码
{
    "code": "500",
    "msg": {
        "is_delete": [
            {
                "message": "这个字段是必填项。",
                "code": "required"
            }
        ]
    }
}
复制代码

models.py

复制代码
from django.db import models


class BaseModel(models.Model):
    '''公共字段'''
    is_delete_choice = (
        (1, '删除'),
        (0, '正常')
    )
    is_delete = models.SmallIntegerField(choices=is_delete_choice, default=0, verbose_name='是否被删除') # default=0:默认值是0
    create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)  # auto_now_add的意思,插入数据的时候,自动取当前时间
    update_time = models.DateTimeField(verbose_name='修改时间', auto_now=True)  # 修改数据的时候,时间会自动变

    class Meta:
        abstract = True  # 只是用来继承的,不会创建这个表
复制代码

我们可以看到:is_delete的字段是有默认值的,我们不传值是没有问题的

 forms.py

from django import forms
from user import models


class ParameterForm(forms.ModelForm):
    class Meta:
        model = models.Parameter # 创建类变量和model,建立映射关系
        fields = '__all__' # 验证全部字段

 而到了froms.py中是验证所有的字段,所以就会报错,这时我们应该用到 exclude 把非必填 以及会自动填写的字段排除下,应该改为:

复制代码
from django import forms
from user import models


class ParameterForm(forms.ModelForm):
    class Meta:
        model = models.Parameter # 创建类变量和model,建立映射关系
        #fields = '__all__' # 验证全部字段
        exclude = ['id','is_delete','create_time','update_time']
复制代码

 

 


 

posted @   他还在坚持嘛  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2020-03-22 Python之内置函数
点击右上角即可分享
微信分享提示