Skip to main content

Django model reprs for humans!

Project description

Project generated with PyScaffold

django-better-repr

Django model reprs for humans!

This project seeks to make reprs of Django models more human-friendly. This project is heavily inspired by https://github.com/dan-passaro/django-auto-repr .

How to use:

from django_better_repr import better_repr

@better_repr
class MyDjangoModel(models.Model):
    my_field = models.CharField(max_length=16)

Or, if class inheritance is more your speed:

from django_better_repr.bases import BetterRepr

class MyDjangoModel(BetterRepr, models.Model):
    my_field = models.CharField(max_length=16)

Then load up your favorite shell and run:

MyDjangoModel.objects.create(my_field='Hello, world!')
>>> MyDjangoModel(my_field='Hello, world!')

If your model has a lot of fields then the repr will automatically switch to pretty printing. This can be configured via settings.

Configuration

If you want to customize the behavior of the library, below are all the options.

# settings.py
BETTER_REPR_CONFIG = {
   'ENABLE_MULTILINE_REPRS': True,  # bool (default: True), whether or not to allow multiline reprs
   'SINGLE_LINE_PARTS_LIMIT': 4,  # int (default: 4), the number of fields a repr can have before switching to multi line
   'MULTILINE_WHITESPACE': '\t',  # str (default: '\t'), the whitespace string to use for multiline reprs
}

Making Changes & Contributing

This project uses pre-commit, please make sure to install it before making any changes:

pip install pre-commit
cd django-better-repr
pre-commit install

It is a good idea to update the hooks to the latest version:

pre-commit autoupdate

Don’t forget to tell your contributors to also install and use pre-commit.

Note

This project has been set up using PyScaffold 4.5. For details and usage information on PyScaffold see https://pyscaffold.org/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-better-repr-1.0.1.tar.gz (33.8 kB view hashes)

Uploaded Source

Built Distribution

django_better_repr-1.0.1-py3-none-any.whl (6.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page