Collection of useful checks for Django Checks Framework
Project description
Django Extra Checks
Useful checks for Django Checks Frameworks
Settings
To enable some check define EXTRA_CHECKS
setting with a dict of checks and its settings:
EXTRA_CHECKS = {
"checks": [
# require non empty `upload_to` argument.
"field-file-upload-to",
# use dict form if check need configuration
# eg. all models must have fk to Site model
{"id": "model-attribute", "attrs": ["site"]},
# require `db_table` for all models, increase level to CRITICAL
{"id": "model-meta-attribute", "attrs": ["db_table"], "level": "CRITICAL"},
]
}
By default only your project apps are checked but you can use
include_apps
option to specify apps to check (including third party apps):
EXTRA_CHECKS = {
# use same names as in INSTALLED_APPS
"include_apps": ["django.contrib.sites", "my_app"],
...
}
Ignoring check problems
Use extra-checks-disable-next-line
comment to disable checks:
# disable specific checks on model
# extra-checks-disable-next-line model-attribute, model-admin
class MyModel(models.Model):
# disable all checks on image field
# extra-checks-disable-next-line
image = models.ImageField()
# separate comments and check's codes are aslo supported
# extra-checks-disable-next-line X014
# extra-checks-disable-next-line no-unique-together
class Meta:
...
Another way is to specify type of the object that need to be ignored in ignore_types
option:
EXTRA_CHECKS = {
"check": [
{
"id": "field-verbose-name-gettext",
# make this check skip wagtail's StreamField
"ignore_types": ["wagtail.core.fields.StreamField"],
}
]
}
Checks
Models
- extra-checks-config - settings.EXTRA_CHECKS is valid config for django-extra-checks (always enabled).
- model-attribute - Each Model in the project must have all attributes from
attrs
setting specified. - model-meta-attribute - Each Model.Meta in the project must have all attributes from
attrs
setting specified. - no-unique-together - Use UniqueConstraint with the constraints option instead.
- no-index-together - Use the indexes option instead.
- model-admin - Each model must be registered in admin.
- field-file-upload-to - FileField/ImageField must have non empty
upload_to
argument. - field-verbose-name - All model's fields must have verbose name.
- field-verbose-name-gettext - verbose_name must use gettext.
- field-verbose-name-gettext-case - Words in text wrapped with gettext must be in one case.
- field-help-text-gettext - help_text must use gettext.
- field-text-null - text fields shouldn't use
null=True
. - field-boolean-null - prefer using
BooleanField(null=True)
instead ofNullBooleanField
. - field-null - don't pass
null=False
to model fields (this is django default). - field-foreign-key-db-index - ForeignKey fields must specify
db_index
explicitly (to apply only to fields in indexes:when: indexes
). - field-default-null - If field nullable (
null=True
), thendefault=None
argument is redundant and should be removed. WARNING Be aware that setting is database dependent, eg. Oracle interprets empty strings as nulls as a result django uses empty string instead of null as default. - field-choices-constraint - Fields with choices must have companion CheckConstraint to enforce choices on database level, details.
DRF Serializers
- drf-model-serializer-extra-kwargs - ModelSerializer's extra_kwargs must not include fields that specified on serializer.
- drf-model-serializer-meta-attribute - Each ModelSerializer.Meta must have all attributes specified in
attrs
, use case.
Development
Install dev deps in virtualenv pip install -e .[dev]
.
Credits
The project was built using ideas and code snippets from:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
django-extra-checks-0.9.1.tar.gz
(26.1 kB
view hashes)
Built Distribution
Close
Hashes for django-extra-checks-0.9.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d42fc011e2b1d5403b6d6efdddaad60cc5b1bdc7027d54b8dfab4221f8d534f3 |
|
MD5 | 2bef3d7fbde7fb3f0587cb34a0d24e95 |
|
BLAKE2b-256 | 9cfa7627175c090911a7fe5c3f8c5eb79f8a3caaf053fe99ef703557bf507ca4 |
Close
Hashes for django_extra_checks-0.9.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f7ac132f2c35bad681fbcd50ddbcbe22e3ef569654d3ef335ce0841b7e0f008 |
|
MD5 | 0a5c06e92db3eca2faf14de1eb959462 |
|
BLAKE2b-256 | 4f243dee8333d3fe075d8eec69e24572a866d02bba4807d6847914e5f6a1672a |