Skip to main content

Provides inspection conveniences for django models

Project description

Provides inspection conveniences for django models, such as its fields (local, foreign keys, many to many).

Its only requirement is any version of django.

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

django-inspect is able to futher inspect a field, all you have to do is to call inspect.sub_inspect("field"), or by path inspect.sub_inspect("field.subfield"). See usage for more.

NOTE: Sub-inspecting is only available for relationship fields.

Installation

django-inspect is available through pip:

pip install django-inspect

Usage

from django.contrib.auth.models import User

from django_inspect import Inspect

# Using an instance/object is also possible
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

sub_inspect = inspect.sub_inspect("logentry_set")

sub_inspect.all_fields
[u'id', 'action_time', 'user', 'content_type', 'object_id',
 'object_repr', 'action_flag', 'change_message']

# Sub-inspecting by path

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

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

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-inspect-0.3.2.tar.gz (3.5 kB view hashes)

Uploaded Source

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