跳转到主要内容

各种常见的Django相关程序。

项目描述

这个库包含各种Django相关程序,可以扩展或修改框架的行为

  • 很多可组合的抽象模型可供使用

  • 一个用户活动日志应用程序,存储用户的IP地址和用户代理(用于查找多账户很有用)

  • 一个评分应用程序,允许网站上的用户对对象进行投票

  • 一个标签应用程序,支持用户和本地化标签的标签

  • 一个徽章应用程序,允许用户在网站上的行为中获得徽章

  • 对 settings.py 的扩展(当前目录解析、命名空间包支持、设置配置文件支持)

  • 典型的过滤器、模板标签、表单字段等。

该包的完整文档可以在以下位置找到

http://packages.python.org/lck.django/

最新版本可以通过 PyPI 安装

$ pip install lck.django

$ easy_install lck.django

源代码仓库问题跟踪器 维护在 GitHub 上。

此软件包包含一些免费使用的静态图片,这些图片几乎适用于每个Django项目

对于好奇者来说,lck代表LangaCore Kit。LangaCore是我的一个单人的软件开发店。

注意: lck.common需要Python 2.7,因为它的所有代码都使用了所谓的四个未来(absolute_importsdivisionprint_functionunicode_literals)。创建这个库的一个优点是使代码更美观。这些开关在旧Python 2.x和新Python 3.x之间提供了一个有用的过渡状态。你也应该使用它们。

注意: 自0.5.0版本以来,lck.django需要Django 1.3,因为它使我的猴子补丁工作变得更简单。此外,1.3版本很好地废弃了我认为丑陋的行为。

如何运行测试

最简单的方法就是运行

$ DJANGO_SETTINGS_MODULE="lck.dummy.settings" DJANGO_SETTINGS_PROFILE="test" django-admin.py test

这个命令同时运行内部Django测试,这是可以接受的,因为存在猴子补丁和其他应该测试以防止潜在破坏的微妙之处。

示例项目也用作设置Django项目的示例。然而,似乎Django测试对设置的一些更改不满意,所以我们使用test配置文件(从settings-test.py加载覆盖)来避免这种情况。

变更日志

0.8.10

  • profile现在正确地回滚了create_a_user_profile_ignoring_dberrors()中的失败事务(解决了初始syncdb的PostgreSQL超级用户创建问题)

  • 引入了自动解决初始迁移的依赖关系。如果你使用activitylogbadgesscoretags,除非你使用纯auth.User,否则它们的初始迁移依赖于你的配置模块已准备好。迁移目前依赖于你各自的ACTIVITYLOG_PROFILE_MODELEDITOR_TRACKABLE_MODELSCORE_VOTER_MODELTAG_AUTHOR_MODEL的初始迁移。如果那些迁移应该依赖于不同的迁移或没有,已添加了新的设置。

0.8.9

  • 修复了0.8.8中的同步activitylog模型的回归

  • dj.choices要求提升到0.9.2(支持Python 2.6 - 3.3)

  • dj.chain要求提升到0.9.2(支持Python 2.7 - 3.3)

0.8.8

  • activitylog现在正确地将数据库更新封装在事务中

  • activitylog在RQ和Celery上现在正确处理模型上的非空约束

  • SessionAwareLanguageMiddleware简化了,现在只是设置会话中的语言参数。这需要更改中间件顺序:这个中间件应该在SessionMiddleware之后和LocaleMiddleware之前。

  • 默认的INSTRUMENTATION_RULE现在是简单的lambda request: False,这使得TimingMiddleware在与前端缓存(如果未访问会话,则不设置Vary: Cookie)的行为上更好。

0.8.7

  • activitylog现在提供新的异步模式,内置对RQ或Celery工作者的支持

  • tags模型中的轻微性能更新

0.8.6

  • activitylog中间件的轻微性能更新。现在在低内存+慢I/O环境中表现更好。

0.8.5

  • 引入了whois管理命令,以帮助通过会话ID查找用户

  • 使用从 Profile 实例代理的 User 属性不再对每次调用进行查询

0.8.4

  • TimeTrackable 模型现在可以使用 mark_dirty()mark_clean() 方法强制标记字段为脏

0.8.3

  • concurrent_get_or_create 现在如果在给定的字段太多(例如,并非所有字段都是唯一的或构成一个唯一组合约束)或太少(例如,字段不形成一个完整的唯一组合约束)时将引发 AssertionError。如果需要在对象创建时使用,应将非唯一字段传递给 defaults 关键字参数。

  • profile 现在通过在 User 上注册 post-save 信号并创建一个 AUTH_PROFILE_MODEL 实例来自动实现配置文件账户同步。已创建一个名为 sync_profiles 的管理命令,用于现有应用程序。

  • 单元测试已转换为 unittest2 格式

0.8.2

  • 修复了 0.8.1 的回归问题:由于更新后的 concurrent_get_or_create 在 MySQL 上由于 MySQL-python 中的狗牙 savepoint 支持而严重失败,因此已删除 savepoint 支持

0.8.1

  • concurrent_get_or_create 基于 Django 1.4.2 中的 get_or_create

  • namespace_package_support 已扩展以涵盖 django.utils.translation(以前,使用 setup.py developpip install -e . 安装时,命名空间打包项目才能与 I18N 一起工作)

  • dj.chain 的要求已升级到 0.9.1(支持更多集体方法)

0.8.0

  • lazy_chain 已移动到单独的 dj.chain 包。因此,旧接口已被弃用,将在未来的版本中删除。

  • activitylog 更新:删除了冗余的用户字段,以便在将 ACTIVITYLOG_PROFILE_MODEL 设置为 auth.User 时再次使用

  • EditorTrackable 不再需要覆盖 get_editor_from_request,如果 EDITOR_TRACKABLE_MODEL 设置为配置文件模型而不是 auth.User

  • 配置文件管理模块包括一个预定义的 ProfileInlineFormSet,用于将配置文件相关模型作为内联包含到 UserAdmin

  • 模拟应用程序现在在版本 1.4.0 - 1.4.2 中通过所有内部 Django 单元测试

0.7.14

  • lazy_chain:0.7.13 中引入的修复引入了不同类型的错误,已回滚并正确修复。还包括更多测试。

  • flatpages 现在在浏览器请求的语言不可用的情况下以默认语言提供内容

  • 一些内部清理

0.7.13

  • lazy_chain:在迭代切片时,迭代器获取了一个多余的项。它没有将其返回,因此结果正确,但如果使用 xfilter(),则会导致不必要的迭代。

  • dj.choices 的要求已升级到 0.9.0(选择是 int 子类,unicode(choice) 现在等效于 choice.desc

0.7.12

  • 命名空间包支持现在在 settings.py 中的 Unicode 字面量中工作

  • 模拟应用程序设置改进:定时中间件已向下移动到堆栈中,因为它使用用户会话,WSGI 应用程序定义是错误的

0.7.11

  • 没有代码更改

  • dj.choices 的要求已升级到 0.8.6(与 0.8.5 完全兼容并显著改进 ChoiceFields

0.7.10

  • BACKLINKS_LOCAL_SITES 设置用于控制是否应在发现回链时将所有配置的站点视为本地站点

  • 更多回链修复,数据模型修复,以提高与不同后端的兼容性

0.7.9

  • activitylog 中修复了回链哈希生成

  • activitylog 接受 UTF-8 字符在 User-Agent 头部中

  • activitylog South 迁移 #0002 现在也支持具有 DDL 事务的后端(例如 Postgres)

0.7.8

  • 修复了 South 对自定义字段(DefaultTagsMACAddressField)的支持。

0.7.7

  • 全面支持 South 迁移。对于现有安装,你应该运行

    $ python manage.py migrate APP_NAME 0001 --fake
    $ python manage.py migrate APP_NAME

    其中 APP_NAMEactivitylogbadgescommonflatpagesprofilescoretags

  • activitylog.models.Backlinkactivitylog.models.UserAgent 中的唯一性约束移动到单独的 hash 字段,以使 MySQL 满意。South 迁移应处理 schema 进化,无论你使用哪种后端。

0.7.6

  • 进一步提高了 Django 1.4 的兼容性:现在自动完成外键混合工作正常

0.7.5

  • Django 1.4 兼容性提高

0.7.4

  • Django 1.4 USE_TZ = True 兼容性

  • 更新了示例设置以支持新的 Django 1.4 设置

  • Profile 模型中的 User 属性代理重写以支持 User 模型上的所有内置和自定义属性

  • activitylog.middleware 现在也记录未经身份验证请求的 IP 和用户代理。可能影响性能。

0.7.3

  • 为 TagStem.objects.get_content_objects() 添加了 order_by 参数

0.7.2

  • 将选择移动到单独的 dj.choices 包。因此,旧接口已被弃用,将在未来的版本中删除。

0.7.1

  • 清理辅助函数后修复了 0.7.0 中的回归问题 lck.django.score

0.7.0

  • 引入了 lck.django.badges

  • 清理了 lck.django.commonlazy_chain 显著升级(现在可以正确支持具有过滤、切片和排序的多个可迭代对象)

0.6.7

  • lck.django.score:在总分更改时发送信号(允许在应用程序端实施缓存策略)

  • 引入了 maxid 管理命令:对于每个注册的模型,返回主键的当前最大值

0.6.6

  • MACAddressField MAC 地址规范化忽略空值,支持 Cisco 0000.0000.0000 语法,并修复了 0.6.5 中的一个小回归

  • 引入了 SessionAwareLanguageMiddleware

  • 为可标记对象提供了一个方便的标签获取器,改进了与 EditorTrackable 的兼容性

0.6.5

  • MACAddressField 中对 MAC 地址进行了更严格的规范化

0.6.4

  • 引入了 ImageModel

  • Named 模型的名称字段长度扩展到 75 个字符

0.6.3

  • 修复了人可读 timediff 过滤器中的一个令人尴尬的漏洞

0.6.2

  • 修复了 MACAddressField 规范化漏洞

0.6.1

  • 具有 ModelAdmin 的可点击 Django 管理界面

  • ModelAdmin 中支持“单独编辑”链接的 ForeignKey 字段

  • lck.django.cache_backends 中压缩 PyLibMCCache 后端

  • activitylog 中支持回链

  • 压缩和优化了图像

  • 使用 Pillow 代替 PIL

0.6.0

哇,变化很多!

  • TimeTrackable 变得更加智能。包括自动更新对象显著更改时的 cache_version 属性。只有当对象实际发生变化时,modified 才会更新。dirty_fields 属性显示上次保存以来的更改属性(也适用于由多个模型组成的对象,包括抽象模型)。

    受 David Cramer 和 EuroPython 2011 上的 Simon Willison 的启发。

  • 现在,dogpile-safe的lck.django.cache支持自定义无效化器,不仅可以通过时间进行无效化,还可以通过例如模型变更(例如TimeTrackable.cache_version)进行无效化。

  • 现在,设置配置文件支持需要修改Django项目的manage.py脚本。这是由Django加载设置的不幸设计所迫。

  • 活动日志已移至其自己的应用lck.activitylog,现在它还跟踪登录访客的IP和用户代理(在追查多账户时很有用)。

  • 引入了一个名为SavePrioritized的抽象模型,该模型在模型上添加了优先级。应用程序的各个部分可以指定它们使用的优先级。如果它们更新了一个最初由具有更高优先级的实体保存的属性,则更新将被静默忽略。

  • 引入了流行方法的并发感知版本Model.objects.get_or_create(不出所料地称为concurrent_get_or_create

  • 引入了一个支持嵌套的commit_on_success版本(不出所料地称为nested_commit_on_success

  • 引入了用于简化私人URL保护的BasicAuthMiddleware

  • EditorTrackable现在在级联外键方面是安全的(由用户创建或修改的内容在从数据库中删除此用户后不会删除)。此外,还有一些不错的管理功能改进。

  • 现在,TimingMiddleware不会破坏使用process_view()的其他中间件,并且在总体上更智能。

  • 在响应中添加了X-Slo头,以供TimingMiddleware使用。

  • render()现在根据渲染输出计算和发出ETags。

  • typical_handler()现在可以redirect_on_success

  • 来自BBCode过滤器的链接现在将在新窗口中打开,并且已设置rel="nofollow"

  • 引入了{%settings KEY%}模板标签。

  • 引入了返回表示应用程序版本的短字符串的模板标签{%git_version%}。这是基于Django项目所在的Git存储库中的最新提交。

  • cycle_filter模板过滤器现在支持显式计数器设置和增量。

  • 引入了将数据转换为Base64和从Base64转换回来的模板过滤器。

  • 引入了集成的JQuery UI和JQueryMobile单选按钮小部件。

  • 改进了文档。

  • 增加了更完整的翻译。

0.5.8

  • 引入了简化的TimingMiddleware

  • 基于BaseProfile的配置文件现在返回self作为get_profile()

  • 添加了奖杯图标。

  • 引入了具有{%color%}标签的控制台标签库。

  • 允许渲染非请求上下文。

  • 引入了Choices.ToNames装饰器。

  • manage.py shell中的预导入现在也适用于具有自定义app_model的模型。

0.5.7

  • 引入了EditorTrackable

  • 选择项可以以分组形式呈现。目前需要将'--keyword=Group:2 '添加到django/core/managemenet/commands/makemessages.py中的xgettext调用中。清理该操作计划在0.6.0版中完成。

  • typical_handler现在与没有save()方法的表单一起工作。

  • 引入了upperfirst过滤器:仅将第一个字符转换为大写。

  • 对于宽图像的方形缩略图现在可以正常工作。

  • 将辅助器的内容移动到common中(启用i18n并清理API),因此辅助器模块已弃用。

  • 一些国际化更新

0.5.6

  • 在缩略图过滤器中,引入了对自动裁剪为方形的支持

  • 微小的翻译更新

0.5.5

  • 组成员继承偏移属性

0.5.4

  • PolishDateWidget进行了微小更新

0.5.3

  • AvatarSupport为自定义头像的抽象模型。GravatarSupport可以作为后备或独立使用。

  • typical_handler现在正确支持文件上传

  • 修复了bug:没有得分的对象不再引发异常

  • 清理了命名空间更改的残留项

0.5.2

  • 核心Django的猴子补丁已标注并重新分组,以便未来更容易管理(是的,还有更多要来)

  • 一个统计计算器

  • 微小bug修复

0.5.1

  • 标签现在支持具有自定义管理器的模型

  • 对于命名和标题模型,引入了只读的name_urlencodedtitle_urlencoded属性。作为模板标签的参数很有用。

  • 通过使用不神圣的<<运算符重载来设置选项的附加属性

  • 在标签中,支持获取带有特定词根的对象

0.5.0

  • langacore.kit迁移到lck命名空间

  • 将许可协议从GPL 3迁移到MIT

  • 将版本从alpha状态提升到beta状态,代码已投入生产超过一年

古老的历史

  • 在0.5.0之前没有保留适当的变化日志

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

lck.django-0.8.10.tar.gz (1.6 MB 查看散列)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面