Skip to main content

django-inspect

https://api.travis-ci.org/tpisani/django-inspect.svg

Provides inspection conveniences for django models.

Features

Convenience attributes

all_fields

All model fields, including all relationships (back and forth).

fields

Only local fields, ie. any regular field and relationships (excluding backwards).

non_rel_fields

Basically the same thing as fields, but excluding all relationships.

fk_fields

Local foreign key fields.

backwards_fk_fields

Only backwards foreign key fields.

all_fk_fields

All foreign key fields (back and forth).

m2m_fields

Local many to many fields.

backwards_m2m_fields

Only backwards many to many fields.

all_m2m_fields

All many to many fields (back and forth).

Sub-inspecting

Futher inspection on relationship fields.

After inspecting a model (creating an Inspect instance) call:

inspect.sub_inspect("field")

Paths are supported too:

inspect.sub_inspect("field.other_field..")

It returns a new Inspect instance, containing information about the target model of the relationship field.

Installation

Available through pip:

$ pip install django-inspect

Usage

Simple inspection

from django.contrib.auth.models import User

from django_inspect import Inspect

inspect = Inspect(User)

# Using an instance/object is also possible.
# user = User()
# inspect = Inspect(user)

inspect.fields
[u'id', 'password', 'last_login', 'is_superuser', 'username',
 'first_name', 'last_name', 'email', 'is_staff', 'is_active',
 'date_joined', 'groups', 'user_permissions']

inspect.non_rel_fields
[u'id', 'password', 'last_login', 'is_superuser', 'username',
 'first_name', 'last_name', 'email', 'is_staff', 'is_active',
 'date_joined']

inspect.m2m_fields
['groups', 'user_permissions']

inspect.backwards_fk_fields
['logentry_set']

Sub-inspecting

from django.contrib.auth.models import User

from django_inspect import Inspect

inspect = Inspect(User)

sub_inspect = inspect.sub_inspect("user_permissions")

sub_inspect.all_fields
[u'id', 'name', 'content_type', 'codename']

futher_inspect = sub_inspect.sub_inspect("content_type")
futher_inspect.all_fields
[u'id', 'name', 'app_label', 'model']

# Sub-inspecting by path

sub_inspect = inspect.sub_inspect("user_permissions.content_type")

sub_inspect.all_fields
[u'id', 'name', 'app_label', 'model']

Testing

Install

Run make install to install dev requirements.

Run tests

Run make test to run tests.

Release files for django-inspect 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-inspect 0.4.1
File Size Uploaded
django-inspect-0.4.1.tar.gz 4.4 kB Details

Release files / django-inspect-0.4.1.tar.gz

Download URL django-inspect-0.4.1.tar.gz
Size 4.4 kB
Tags Source
SHA-256 checksum
How to use checksums
23d5a2d1aaed115e79e5f1344f239598824bed00af5fb5d221467b1154a59dd8
BLAKE2b-256 checksum
How to use checksums
c7933cdf064b7d45d7fbdca42b86bdd291b45247dbf5b471569797cdc37a4f29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.4.1 This release

1 release file

0.4

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page