Skip to content

A plugin to allow you to add metadata to Django model fields.

License

Notifications You must be signed in to change notification settings

melvinkcx/django-model-field-meta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

django-model-field-meta

An easy-to-use plugin to allow optional metadata of model fields.

Compatible with django-model-utils, safedelete, etc.

Tested on Python 3+, Django 2.1+.

Example

Inserting metadata:

from django.db import models   # Remove this 
from model_field_meta import models, FieldMetaMixin

class MyModel(FieldMetaMixin, models.Model):  # Add FieldMetaMixin
    my_field = models.TextField(meta={"key": "value"})

Accessing metadata:

model_obj = MyModel.objects.first()

model_obj.get_field_meta("my_field")
# {"key": "value"}

Or,

MyModel.get_field_meta("my_field")
# {"key": "value"}

Installation

Install from PiPy:

pip install django-model-field-meta

or, if you are using Pipenv:

pipenv install django-model-field-meta

Why metadata in model field?

In one of my Django projects, I needed to supply extra information about our model fields.

For my purpose, help_text is too limited. Using code comments is not feasible as I need to use those information programatically.

Hence, django_model_field_meta package is created.

Compatibility with third-party packages

In my project, I use:

  • django-model-utils for its InheritanceManager.
  • safedelete for its SafeDeleteModel

So far, I haven't encounter any issue. Feel free to report if you do.

Issues

If you have questions or issues using it, please create a Github issue at:

https://github.com/melvinkcx/django-model-field-meta/issues

About

A plugin to allow you to add metadata to Django model fields.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages