首页 > 其他分享 >建立模型类的方法学习 DecimalField ,models.SmallIntegerField ,get_pay_type_display()

建立模型类的方法学习 DecimalField ,models.SmallIntegerField ,get_pay_type_display()

时间:2023-07-25 10:15:18浏览次数:36  
标签:SmallIntegerField get models pay choices type display DecimalField

1. 

total_amount = models.DecimalField(max_digits=10, decimal_places=2, verbose_name="订单总价", default=0)

DecimalField: 这是一个Django模型字段类型,用于存储十进制数值,通常用于表示货币和其他需要高精度计算的数值

max_digits=10: 这是DecimalField中的一个参数,用于指定该字段能够存储的最大位数(包括整数位和小数位)。在这个例子中,最大位数被限制为10位

decimal_places=2: 这是DecimalField中的另一个参数,用于指定小数点后的位数。在这个例子中,小数点后有2位

总之,这个字段 total_amount 是一个能够存储最大10位数、小数点后有2位数的十进制数字段,用于表示订单的总价

2. 

pay_choices = (
    (1, '支付宝'),
    (2, '微信支付'),
)
pay_type = models.SmallIntegerField(choices=pay_choices, default=0, verbose_name="支付方式")

 

models.SmallIntegerField: 这是一个Django模型字段类型,用于存储较小的整数。

choices=pay_choices: 这是SmallIntegerField的一个参数,用于指定该字段可接受的选项。我们将pay_choices作为选项提供给这个字段,这意味着订单的支付方式只能是"支付宝"或"微信支付"。

3. 

def pay(self):
    return self.get_pay_type_display()

 self: 这是指向订单模型实例的引用。在实例方法中,第一个参数通常是self,它代表当前调用该方法的订单实例本身。

get_pay_type_display(): 这是Django模型中的一个内置方法。对于pay_type 这样的choices字段,Django为每个字段自动生成一个get_字段名  _display() 方法,其中 字段名 是指实际数据库中存储选择值的字段名。在这个例子中,我们有一个pay_type字段,它的选项由 pay_choices 定义。所以Django为它自动创建了get_pay_type_display()方法。

return: 这个方法的返回值是通过调用 get_pay_type_display() 方法获得的支付方式的可读标签。也就是说,这个方法返回订单实例的支付方式对应的可读标签

这个方法的作用是为了方便在代码中获取订单实例的支付方式对应的可读标签,而不必直接访问 pay_type 字段的值。通过调用 self.get_pay_type_display() 方法,你可以获得订单实例的支付方式的可读标签,从而在模板或其他代码中直接使用该标签来展示支付方式,而不需要手动解析 pay_choices 元组

 

标签:SmallIntegerField,get,models,pay,choices,type,display,DecimalField
From: https://www.cnblogs.com/abc683871/p/17579035.html

相关文章

  • Large Language Models are Zero-Shot Reasoners
    目录概Let'sthinkstepbystep代码KojimaT.,GuS.S.,ReidM.,MatsuoY.andIwasawaY.Largelanguagemodelsarezero-shotreasoners.NIPS,2022.概Zero-shotCoT.Let'sthinkstepbystep如上图所示,利用"Let'sthinkstepbystep"来引......
  • 对这段代码class OrderView(GenericViewSet): serializer_class = PaySerializer
    classOrderView(GenericViewSet):serializer_class=PaySerializerqueryset=Order.objects.all()OrderView继承自GenericViewSet类,GenericViewSet是DRF提供的一个通用的视图集类,它集成了常见的CRUD(创建、检索、更新、删除)操作以及其他常用操作。serial......
  • 《Prompting Is Programming: A Query Language for Large Language Models》论文学习
    一、前言大型语言模型在诸如对话问答、代码生成等广泛任务上表现出了出色的性能。在较高的层次上,给定一段输入,大语言模型可用于按照概率统计方式自动补全序列。在此基础上,用户用指令(instructions)或示例(examples)去提示(prompt)大语言模型,以实施各种下游任务。本质上,提示(prompt)方法......
  • django项目中分多个models.py创建table
    django项目每个app都默认有一个model.py文件。当app需要大量建立table,且需要分类时,能否建立多个model.py文件?。1、在app文件夹下创建一个models文件夹(myapp/models/):2、将app文件夹中models.py文件删除(也可以剪切到models文件夹中):3、models文件夹下新建__init__.py:4、......
  • Json.NET反序列化漏洞生成Ysoserial攻击Payload
    Ysoserial.Net只提供序列化之后的Payload主体,具体执行的命令从外部输入,实现代码清单如下Stringpayload=@"{    '$type':'System.Windows.Data.ObjectDataProvider,PresentationFramework,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35',  ......
  • 《ReAct: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS》论文学习
    一、论文主要思想本文首先认为,到目前为止,LLM在语言理解方面令人印象深刻,它们已被用来生成CoT(思想链)来解决一些问题,它们也被用于执行和计划生成。尽管这两者是分开研究的,但本文旨在以交错的方式将推理和行动结合起来,以提高LLM的表现。这个想法背后的原因是,如果你考虑一下作为......
  • Flask Models进阶 多表
    FlaskModels进阶多表''' 多表查询时,db.relationship在哪边,哪边就是正向 正向查找关联关系名 反向查找backref #班级表 classGrade(db.Model):__tablename__='grade'#表名id=db.Column(db.Integer,primary_key=True,autoincrement=True......
  • django.db.models.query.QuerySet格式的数据输出
    1、deffindmtm2(request):importserializerimportjson#多对多跨表正向查询#res=softlist.objects.filter(hostlists__ip="10.116.6.177").values("softname")res2=softlist.objects.filter(hostlists__ip="10.116.9.233"......
  • DreamBooth Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generat
    目录概MotivationDreamBooth代码RuizN.,LiY.,JampaniV.,PritchY.,RubinsteinM.andAbermanK.DreamBooth:Finetuningtext-to-imagediffusionmodelsforsubject-drivengeneration.arXivpreprintarXiv:2208.12242,2022.概可控文生图.Motivation之前的......
  • junodb paypal 开源的key value 存储
    junodbpaypal开源的keyvalue存储,下图是关于整体架构的参考架构 简单说明:junodb是基于proxy的架构设计,可以方便的水平扩展,junodb核心包含了三部分,client,proxy,storageserver,当然junodb还依赖一个etcdproxy会通过存在在etcd的分片信息进行数据的复制处理,对于数据存储,juno......