手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

Django中自定义model字段类型Field

时间:2024-10-14 21:56:31

1、django自定义一个简单的字段首先导入djangomodelsfrom django.db import models然后定义一个获取字典类型的函数,该函数返回一个字典类型的参数def get_kargs(**kwargs): return kwargs(关于**kwargs的使用可以看我之前写过的一个经验)

Django中自定义model字段类型Field

2、接着我们开始定义这个简单字段地址(AddressField)for循环中能够获取到一个字典类型参数,然后方便我们,在odels.CharField中直接对它使用models.CharField(address,**kwargs),第一个是传入的参数,第二个是该参数的条件。def AddressField(address,**kwargs): for k ,v in get_kargs(db_index=True, null=False, blank=False, max_leng h=190).items(): if k not in kwargs: kwargs[k]=v return models.CharField(address,**kwargs)到此这个字段定义完成

Django中自定义model字段类型Field

3、我们在自定义一个字段,首先也是引入modelsclass TestField(models.Field): __metaclass__ =models.SubfieldBase description = 'TestField' def __init__(self,**kwargs): models.Field.__init__(self,**kwargs) def value_to_string(self, obj): return self.get_prep_value(self._get_val_from_obj(obj))get_prep_value 用于将Python变量保存到数据库,执行初步的非DB特定值检查和转换。以上的**kwargs是传入的字典参数

Django中自定义model字段类型Field

4、**kwargs是传入的字典参数,可以传入如下一些字段null=True 字段是否可以为空blank=True 后台帆歌达缒Admin 中添加数据时是否可允许空值primary_key = False 主键auto_now 和 auto_now_add  auto_now 自动创建,当前操作的时间  auto_now_add 自动创建-,创建时的时间choices选择字段,可以定义为一个字典类型max_length 最大长度default  设置默认值verbose_name  Admin中字段的显示名称db_column  数据库字段名称unique=True  不允许重复,默认falsedb_index = True  数据库索引editable=True  在Admin里是否可编辑error_messages=None  错误提示auto_created=False  自动创建help_text  Admin中提示帮助信息validators=[] 验证字段upload-to 上传路径

Django中自定义model字段类型Field

5、字段使用,对于添加的字段,我们只要在model中引入,即可使用class User(models.Model): name=models.CharField(max_length=100) address=AddressField() text=TestField()

Django中自定义model字段类型Field

6、django field中常用的字段CharField字符串字段,用于小到大的字符串。对于大量的文本,使用TextField.此字段的默认窗体小部件是TextInput.CharField有一个特点:CharField.max_length字段的最大长度(以字符为单位)。max_Length在数据库级别和Django的验证中强制执行更多关于django的字段详细说明可以访问django官网查看

Django中自定义model字段类型Field
© 手抄报圈