帮助Django项目的实用程序集合
django-tiamat的Python项目详细描述
帮助Django项目的实用程序集合
安装
pip install django-tiamat
添加到python路径或setup.py install并将'tiamat'添加到 INSTALLED_APPS设置。
用法
这是为了在任何项目中通用,以节省编写帮助程序的时间 这是大多数项目的共同点。
视图装饰器
as_json将返回一个json响应:
from tiamat.decorators import as_json @as_json def some_view(request): #do something return {'key': 'value'}
as_jsonp将返回一个jsonp响应:
from tiamat.decorators import as_jsonp @as_jsonp('callback') def some_view(request): #do something return {'key': 'value'}
`http://.../?callback=myFunctionCall`
返回`myFunctionCall({"foo":"1"})`
H3>模型混合< EH3>
SlugMixin将向您的模型添加一个slug字段(名为slug),该字段将 保存时从名为“^{TT10}$”的字段自动生成。如果你愿意 重写默认字段以从集合^{tt11}生成slug$ 在模型上。有关详细信息,请参见源代码。
通用管理器
一种添加管理器的简单方法,该管理器重写返回的queryset。
所以这个:
class SomeManager(models.Manager): def get_query_set(self): return super(SomeManager, self).get_query_set().filter(this=that) class SomeModel(models.Model): # define the model objects = models.Manager() custom_objects = SomeManager()
变成这样:
from tiamat.models import GenericManager class SomeModel(models.Model): # define the model objects = models.Manager() custom_objects = GenericManager(this=that)
分页助手
处理查询集分页的简单方法:
from tiamat.paginate import page_objects page = page_objects(Something.objects.all(), 25, 2)
其中,25是每页的对象,2是当前页码
ID编码器
当你在你的url中使用id时,这是一个很好的选择。例如一个链接 生成以确认电子邮件地址,或生成链接以重置用户的 密码。
确保将设置URL_ENCODER_KEY设置为不同于 你的SECRET_KEY然后你可以:
from tiamat.urlencoder import encoder encoder.encode_id(id) encoder.decode_id(identifier_string)
电子邮件
send_async_email提供了一个使用模板发送电子邮件的简单助手:
from tiamat.mail import send_async_email send_async_email( 'path/to/template.html', {'name': 'Steve'}, 'Hello', [user.email for user in User.objects.all()] )
更多?
更多信息请参见源代码。