# Boxine - bx_django_utils
Various Django utility functions
## Quickstart
```bash
pip install bx_django_utils
```
## Existing stuff
Here only a simple list about existing utilities.
Please take a look into the sources and tests for deeper informations.
[comment]: <> (✂✂✂ auto generated start ✂✂✂)
### bx_django_utils.approve_workflow
Base model/admin/form classes to implement a model with draft/approve versions workflow
#### bx_django_utils.approve_workflow.admin
* [`BaseApproveModelAdmin()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/approve_workflow/admin.py#L15-L107) - Base admin class for a draft/approve Model
#### bx_django_utils.approve_workflow.forms
* [`PublishAdminForm()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/approve_workflow/forms.py#L7-L46) - Activate models REQUIRED_FIELDS_PUBLIC on approve
#### bx_django_utils.approve_workflow.models
* [`BaseApproveModel()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/approve_workflow/models.py#L14-L202) - Base model class for approve models *and* this relation models.
* [`BaseApproveWorkflowModel()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/approve_workflow/models.py#L205-L255) - Base model for approve workflow models.
#### bx_django_utils.data_types.gtin
ModelField, FormField and validators for GTIN/UPC/EAN numbers
##### bx_django_utils.data_types.gtin.form_fields
* [`GtinFormField()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/data_types/gtin/form_fields.py#L8-L28) - Form field with GTIN validator.
##### bx_django_utils.data_types.gtin.model_fields
* [`GtinModelField()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/data_types/gtin/model_fields.py#L10-L33) - GTIN model field
##### bx_django_utils.data_types.gtin.validators
* [`GtinValidator()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/data_types/gtin/validators.py#L34-L52) - Validate GTIN number
* [`validate_gtin()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/data_types/gtin/validators.py#L12-L30) - It's the same as stdnum.ean.validate() but also accept ISBN-10
#### bx_django_utils.dbperf.cursor
* [`RecordingCursorWrapper()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/dbperf/cursor.py#L17-L115) - An implementation of django.db.backends.utils.CursorWrapper.
#### bx_django_utils.dbperf.query_recorder
* [`SQLQueryRecorder()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/dbperf/query_recorder.py#L95-L167) - A context manager that allows recording SQL queries executed during its lifetime.
### bx_django_utils.filename
* [`clean_filename()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/filename.py#L34-L64) - Convert filename to ASCII only via slugify.
* [`filename2human_name()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/filename.py#L7-L31) - Convert filename to a capitalized name.
#### bx_django_utils.humanize.pformat
* [`pformat()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/humanize/pformat.py#L6-L20) - Better `pretty-print-format` using `DjangoJSONEncoder` with fallback to `pprint.pformat()`
#### bx_django_utils.humanize.time
* [`human_timedelta()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/humanize/time.py#L18-L63) - Converts a time duration into a friendly text representation. (`X ms`, `sec`, `minutes` etc.)
#### bx_django_utils.models.color_field
* [`ColorModelField()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/models/color_field.py#L14-L29) - Hex color model field, e.g.: "#0055ff" (It's not a html color picker widget)
* [`HexColorValidator()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/models/color_field.py#L6-L11) - Hex color validator (seven-character hexadecimal notation, e.g.: "#0055ff")
#### bx_django_utils.models.manipulate
Utilities to manipulate objects in database via models:
* [`create()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/models/manipulate.py#L8-L16) - Create a new model instance with optional validate before create.
* [`create_or_update()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/models/manipulate.py#L19-L56) - Create a new model instance or update a existing one.
#### bx_django_utils.models.timetracking
* [`TimetrackingBaseModel()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/models/timetracking.py#L8-L62) - Abstract base model that will automaticly set create/update Datetimes.
### bx_django_utils.stacktrace
* [`StackTrace()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/stacktrace.py#L21-L22) - Built-in mutable sequence.
* [`StacktraceAfter()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/stacktrace.py#L83-L111) - Generate a stack trace after a package was visited.
* [`get_stacktrace()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/stacktrace.py#L63-L80) - Returns a StackTrace object, which is a list of FrameInfo objects.
#### bx_django_utils.templatetags.humanize_time
* [`human_duration()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/templatetags/humanize_time.py#L15-L45) - Verbose time since template tag, e.g.: `<span title="Jan. 1, 2000, noon">2.0 seconds</span>`
### bx_django_utils.test_utils
Utilities / helper for writing tests.
#### bx_django_utils.test_utils.assert_queries
* [`AssertQueries()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/test_utils/assert_queries.py#L30-L200) - Assert executed database queries: Check table names, duplicate/similar Queries.
#### bx_django_utils.test_utils.datetime
* [`MockDatetimeGenerator()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/test_utils/datetime.py#L4-L50) - Mock django `timezone.now()` with generic time stamps in tests.
#### bx_django_utils.test_utils.html_assertion
* [`HtmlAssertionMixin()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/test_utils/html_assertion.py#L29-L127) - Unittest mixin class with useful assertments around Django test client tests
* [`assert_html_response_snapshot()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/test_utils/html_assertion.py#L9-L26) - Assert a HttpResponse via snapshot file. (Strip all empty lines from html)
#### bx_django_utils.test_utils.model_clean_assert
* [`AssertModelCleanCalled()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/test_utils/model_clean_assert.py#L35-L86) - Context manager for assert that full_clean() was called for every model instance.
* [`CleanMock()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/test_utils/model_clean_assert.py#L6-L32) - Track if full_clean() was called.
#### bx_django_utils.test_utils.users
* [`assert_permissions()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/test_utils/users.py#L29-L44) - Check user permissions.
* [`filter_permission_names()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/test_utils/users.py#L8-L26) - Generate a Permission model query filtered by names, e.g.: ['<app_label>.<codename>', ...]
* [`make_max_test_user()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/test_utils/users.py#L106-L140) - Create a test user with all permissions *except* the {exclude_permissions} ones.
* [`make_minimal_test_user()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/test_utils/users.py#L79-L103) - Create a test user and set given permissions.
* [`make_test_user()`](https://github.com/boxine/bx_django_utils/blob/master/bx_django_utils/test_utils/users.py#L47-L76) - Create a
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
共50个文件
py:35个
po:4个
mo:4个
资源分类:Python库 所属语言:Python 资源全名:bx_django_utils-5.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源推荐
资源详情
资源评论
收起资源包目录
bx_django_utils-5.tar.gz (50个子文件)
bx_django_utils-5
PKG-INFO 11KB
pyproject.toml 3KB
bx_django_utils
view_utils
dynamic_menu_urls.py 1KB
__init__.py 0B
models
timetracking.py 2KB
manipulate.py 2KB
color_field.py 1KB
__init__.py 0B
test_utils
assert_queries.py 6KB
datetime.py 1KB
users.py 4KB
__init__.py 50B
html_assertion.py 5KB
model_clean_assert.py 3KB
stacktrace.py 3KB
data_types
__init__.py 0B
gtin
constants.py 85B
model_fields.py 1KB
validators.py 2KB
__init__.py 74B
README.md 754B
form_fields.py 974B
locale
de
LC_MESSAGES
django.po 1KB
django.mo 1013B
en
LC_MESSAGES
django.po 1KB
django.mo 597B
__init__.py 18B
templatetags
__init__.py 0B
humanize_time.py 1KB
approve_workflow
constants.py 30B
models.py 8KB
templates
approve_workflow
submit_line.html 1KB
change_form.html 288B
locale
de
LC_MESSAGES
django.po 2KB
django.mo 2KB
en
LC_MESSAGES
django.po 2KB
django.mo 1KB
__init__.py 100B
admin.py 4KB
forms.py 2KB
filename.py 2KB
dbperf
query_recorder.py 6KB
cursor.py 4KB
__init__.py 0B
humanize
time.py 2KB
__init__.py 0B
pformat.py 641B
LICENSE 1KB
setup.py 11KB
README.md 10KB
共 50 条
- 1
资源评论
挣扎的蓝藻
- 粉丝: 13w+
- 资源: 15万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功