django-nonefield

django-nonefield is a None field for Django.

A typical use case: allow presentational (non-input, non-field) form elements (text, image, embed video, etc). This could be very useful if your forms are dynamic (as in form-builders/generators). Django REST Framework integration is implemented as well.

PyPI Version Supported Python versions Build Status Documentation Status GPL-2.0-only OR LGPL-2.1-or-later Coverage

Prerequisites

  • Django 1.8, 1.11, 2.0, 2.1, 2.2, 3.0.
  • Python 2.7, 3.5, 3.6, 3.7, 3.8

Installation

  1. Install latest stable version from PyPI:

    pip install django-nonefield
    

    Or latest stable version from GitHub:

    pip install https://github.com/barseghyanartur/django-nonefield/archive/stable.tar.gz
    

    Or latest stable version from BitBucket:

    pip install https://bitbucket.org/barseghyanartur/django-fobi/get/stable.tar.gz
    
  2. Add nonefield to INSTALLED_APPS of the your projects’ Django settings.

    INSTALLED_APPS = (
        # ...
        # None field
        'nonefield',
        # ...
    )
    

Usage

forms.py

In forms you could use it as follows:

from django import forms
from nonefield.fields import NoneField

class MyForm(forms.Form):

    name = forms.CharField(max_length=255)
    some_text = NoneField(initial='Lorem ipsum')

See this snippet as an example of how to allow to use paragraphs in the django-forms-builder.

serializers.py

You can also use it in Django REST Framework.

from rest_framework import serializers
from nonefield.contrib.drf_integration.fields import NoneField


class ContentTextField(NoneField):
    """Content text field."""

class BarSerializer(serializers.Serializer):

    title = serializers.CharField(max_length=256)
    text = serializers.CharField()
    context_text = ContentTextField(label='', default='Haha')

See how it’s used in django-fobi to allow to use content/presentational elements (text, image, embed video, etc.) in the Django REST Framework schema.

License

GPL-2.0-only OR LGPL-2.1-or-later

Support

For any issues contact me at the e-mail given in the Author section.

Author

Artur Barseghyan <artur.barseghyan@gmail.com>

Indices and tables