Django's model 参考(三)
Model methods
__repr__
get_absolute_url
如何表现对象的url
def get_absolute_url(self):
return "/pizzas/%i/" % self.id
_pre_save
内容数据库保存前需要做的事情。比如可以对某些字段进行计算等
_post_save 保存后做的。比如处理其他相关数据表
_pre_delete
_post_delete
Module-level methods
通过在method名字前面加_module_可以定义module-level的methods
class Pizza(meta.Model):
def _module_get_pizzas_to_deliver():
return get_list(delivered__exact=False) #__exact 相当于== __ne相当于!= 比较奇怪的用法
>>> from django.models.pizza_hut import pizzas
>>> pizzas.get_pizzas_to_deliver()
[ ... ]
Manipulator methods
通过在method前面加上_manipulator_定义。用来自定义字段检验。使用相应validate事会自动调用
class Pizza(meta.Model):
# ...
def _manipulator_validate_customer_id(self, field_data, all_data):
from django.core import validators
from django.conf.settings import BAD_CUSTOMER_IDS
if int(field_data) in BAD_CUSTOMER_IDS:
raise validators.ValidationError, "We don't deliver to this customer."
使用 models
django-admin.py startapp 创建
myapp/
__init__.py # Empty file
models/
__init__.py # Contains "__all__ = ['mymodels']"
mymodels.py # Contains your models
在setting 中的 INSTALLED_APPS 加上 mymodels
0 Comments:
发表评论
<< Home