Skip to main content

Django model field list field

Project description

Django model field list field

Build Status GitHub release PyPI release Python version GitHub issues Codacy grade Codacy coverage GitHub license

This is a Django model field that provides a list of some other model's fields. Fields can be multi-selected and "under the hood" are stored as a comma-separated string. Also package provides simple form field with the same capabilities.

Requirements

  • Python 2.7+ or Python 3.3+
  • Django 1.11+

Installation

Install django-mflf using pip:

pip install django-mflf

Add model_field_list to INSTALLED_APPS. Example:

INSTALLED_APPS = (
    ...
    'model_field_list',
    ...
)

Example usage

Model field:

from model_field_list import ModelFieldListField

class ProductKind(models.Model):
    name = models.CharField(max_length=100)
    comparison = ModelFieldListField('comparison criteria', source_model=Product)

If referenced model has many fields it would be useful to use FilteredSelectMultiple in Django admin:

from django.contrib.admin.widgets import FilteredSelectMultiple

class ProductKindAdminForm(forms.ModelForm):
    class Meta:
        widgets = {
            # different widget label is intentional
            'comparison': FilteredSelectMultiple('product properties', False)
        }

Simple form field:

from django.contrib.admin.widgets import FilteredSelectMultiple
from model_field_list import ModelFieldListFormField

class ProductExportForm(ExportForm):
    export_fields = ModelFieldListFormField(source_model=Product, label='Export fields',
                                            widget=FilteredSelectMultiple('свойства товара', False))

Limitations

  • All model fields are listed, no option to filter them in any way.
  • Field order can't be customized - they are sorted by the order of their definition in a model.

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-mflf-0.1.0.tar.gz (6.7 kB view hashes)

Uploaded Source

Built Distribution

django_mflf-0.1.0-py2.py3-none-any.whl (8.9 kB view hashes)

Uploaded Python 2 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