帮助Django项目的实用程序集合

django-tiamat的Python项目详细描述


帮助Django项目的实用程序集合

TravisButton

安装

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()]
)

模板标签

作为使用form.as_p()form.as_table()和交易的替代方法 使用它,您可以通过重写 模板tiamat/_form.html并像这样使用:

{% load tiamat_tags %}
{% render_form form %}

更多?

更多信息请参见源代码。

需要帮助吗?

电子邮件:rvause@gmail.com

github:https://github.com/rvause/django-tiamat

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JAXB封送字符串,具有xml值,且不转义该值   java ModelMapper转换器不工作   java像HH000412或HCANN000001这样的前缀是什么意思?   验证日期输入修复java。lang.numberformatexception错误   当表具有外键时,java Telosys代码生成失败   如何使所有派生类一起只能实例化一个实例的单例抽象基类?(爪哇)   java如何在非静态服务类中使用广播接收器   java nutch爬虫相对URL问题   使用Jboss DMR下载/保存java附件   Rest模板:无法提取响应:当我们得到xml响应时,没有找到适合响应类型的HttpMessageConverter,没有绑定到JAVA对象   java如何编写可扩展窗格/面板/卡的代码   java是在ITreeViewerListener的treeExpanded()之前调用ContentProvider的getChildren()吗?   java将JComponent添加到小程序窗格   java混淆:使用简单逻辑的Flames程序