Terminology and Definitions

This guide explains key terms used throughout the django-model-info package and documentation. If you are experienced with Django, you probably know these already. But new developers or those unfamiliar with Django may find this helpful.

Django Model Concepts

Field Types

  • Primary Key (PK): The main identifier field for a model, usually an auto-incrementing ID.

  • Foreign Key: A field that creates a one-to-many relationship between models.

  • Many-to-Many: A field type that allows multiple records to be related to multiple other records.

  • One-to-One: A field type that creates a unique one-to-one relationship between models.

Relationships

  • Forward Relation: A relationship defined directly on a model (e.g., a ForeignKey field).

  • Reverse Relation: The automatic relationship created on the “other” model when a forward relation exists.

  • Related Name: The attribute name used to access reverse relations (default is modelname_set).

Method Types

  • Dunder Methods: Special Python methods surrounded by double underscores (e.g., __str__, __init__).

  • Private Methods: Methods starting with a single underscore, indicating they’re intended for internal use.

  • Manager Methods: Methods available through the model’s manager (usually accessed via Model.objects).

Database Concepts

Table Information

  • Database Table: The actual SQL table where model data is stored.

  • Table Space: A storage location where the actual database files are kept.

  • Column: The database representation of a model field.

  • Index: A database structure that improves the speed of data retrieval.

  • Constraint: A rule enforced on the data (e.g., unique constraints, check constraints).

Field Properties

  • Verbose Name: A human-readable name for a field, used in forms and admin.

  • DB Type: The database-specific data type for a field (e.g., varchar, integer).

  • DB Column: The actual name of the column in the database table.

Model Metadata

Model Properties

  • Abstract Model: A model that serves as a base for other models but doesn’t create a database table.

  • Proxy Model: A model that inherits from another model but doesn’t create a new table.

  • Managed Model: A model whose database table is automatically created/modified by Django.

  • Label: The full Python path to a model (e.g., ‘myapp.MyModel’).

django-model-info Specific

Verbosity Levels

  • Level 0: Shows only model names

  • Level 1: Shows model names, field names, and non-dunder/common method names

  • Level 2: Shows Level 1 info plus field details and method signatures

  • Level 3: Shows Level 2 info plus all method details including source locations

Development Terms

Code Location

  • File Path: The location of a model or method in the codebase

  • Line Number: The specific line where a model or method is defined

  • Method Resolution Order (MRO): The order in which Python searches for methods in class inheritance

Documentation

  • Docstring: The Python string literal that appears as the first statement in a module, class, or method

  • Signature: The definition of a method showing its parameters and return type