• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 在Django的模型中添加自定义方法的示例

在Django的模型中添加自定义方法的示例

作者:goldensun 字体:[增加 减小] 来源:互联网

goldensun 通过本文主要向大家介绍了django 模型,django 自定义标签,django 自定义权限,django自定义过滤器,决策树模型案例示例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

为了给你的对像添加一个行级功能,那就定义一个自定义方法。 有鉴于manager经常被用来用一些整表操作(table-wide),模型方法应该只对特殊模型实例起作用。

这是一项在模型的一个地方集中业务逻辑的技术。

最好用例子来解释一下。 这个模型有一些自定义方法:

from django.contrib.localflavor.us.models import USStateField
from django.db import models

class Person(models.Model):
  first_name = models.CharField(max_length=50)
  last_name = models.CharField(max_length=50)
  birth_date = models.DateField()
  address = models.CharField(max_length=100)
  city = models.CharField(max_length=50)
  state = USStateField() # Yes, this is U.S.-centric...

  def baby_boomer_status(self):
    "Returns the person's baby-boomer status."
    import datetime
    if datetime.date(1945, 8, 1) <= self.birth_date <= datetime.date(1964, 12, 31):
      return "Baby boomer"
    if self.birth_date < datetime.date(1945, 8, 1):
      return "Pre-boomer"
    return "Post-boomer"

  def is_midwestern(self):
    "Returns True if this person is from the Midwest."
    return self.state in ('IL', 'WI', 'MI', 'IN', 'OH', 'IA', 'MO')

  def _get_full_name(self):
    "Returns the person's full name."
    return u'%s %s' % (self.first_name, self.last_name)
  full_name = property(_get_full_name)

</div>

例子中的最后一个方法是一个property。 想了解更多关于属性的信息请访问http://www.python.org/download/releases/2.2/descrintro/#property

这是用法的实例:

>>> p = Person.objects.get(first_name='Barack', last_name='Obama')
>>> p.birth_date
datetime.date(1961, 8, 4)
>>> p.baby_boomer_status()
'Baby boomer'
>>> p.is_midwestern()
True
>>> p.full_name # Note this isn't a method -- it's treated as an attribute
u'Barack Obama'

</div>

</div>

您可能想查找下面的文章:

  • 在Django的模型和公用函数中使用惰性翻译对象
  • 在Django的模型中执行原始SQL查询的方法
  • 在Django的模型中添加自定义方法的示例
  • Django的数据模型访问多对多键值的方法
  • 举例讲解Django中数据模型访问外键值的方法
  • django模型中的字段和model名显示为中文小技巧分享

相关文章

  • 使用基于Python的Tornado框架的HTTP客户端的教程
  • python清除字符串里非字母字符的方法
  • Python使用bs4获取58同城城市分类的方法
  • Python Socket编程入门教程
  • Python3处理文件中每个词的方法
  • 解析Python中的二进制位运算符
  • python根据给定文件返回文件名和扩展名的方法
  • python中的五种异常处理机制介绍
  • 在Python中使用第三方模块的教程
  • 视觉直观感受若干常用排序算法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python中的yield使用方法
    • Django自定义插件实现网站登录验证码功能
    • python3音乐播放器简单实现代码
    • python通过pil为png图片填充上背景颜色的方法
    • 为Python的web框架编写前端模版的教程
    • Python入门教程之if语句的用法
    • Python 字典(Dictionary)操作详解
    • Python3指定路径寻找符合匹配模式文件
    • Python编程入门的一些基本知识
    • python从入门到精通(DAY 1)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有