PostgreSQL specific form fields and widgetsLink para este cabeçalho

All of these fields and widgets are available from the django.contrib.postgres.forms module.

CamposLink para este cabeçalho

SimpleArrayFieldLink para este cabeçalho

class SimpleArrayField(base_field, delimiter=',', max_length=None, min_length=None)Link para esta definição

A field which maps to an array. It is represented by an HTML <input>.

base_fieldLink para esta definição

This is a required argument.

It specifies the underlying form field for the array. This is not used to render any HTML, but it is used to process the submitted data and validate it. For example:

Python console
>>> from django import forms
>>> from django.contrib.postgres.forms import SimpleArrayField

>>> class NumberListForm(forms.Form):
...     numbers = SimpleArrayField(forms.IntegerField())
...

>>> form = NumberListForm({"numbers": "1,2,3"})
>>> form.is_valid()
True
>>> form.cleaned_data
{'numbers': [1, 2, 3]}

>>> form = NumberListForm({"numbers": "1,2,a"})
>>> form.is_valid()
False
delimiterLink para esta definição

This is an optional argument which defaults to a comma: ,. This value is used to split the submitted data. It allows you to chain SimpleArrayField for multidimensional data:

Python console
>>> from django import forms
>>> from django.contrib.postgres.forms import SimpleArrayField

>>> class GridForm(forms.Form):
...     places = SimpleArrayField(SimpleArrayField(IntegerField()), delimiter="|")
...

>>> form = GridForm({"places": "1,2|2,1|4,3"})
>>> form.is_valid()
True
>>> form.cleaned_data
{'places': [[1, 2], [2, 1], [4, 3]]}
max_lengthLink para esta definição

This is an optional argument which validates that the array does not exceed the stated length.

min_lengthLink para esta definição

This is an optional argument which validates that the array reaches at least the stated length.

SplitArrayFieldLink para este cabeçalho

class SplitArrayField(base_field, size, remove_trailing_nulls=False)Link para esta definição

This field handles arrays by reproducing the underlying field a fixed number of times.

base_fieldLink para esta definição

This is a required argument. It specifies the form field to be repeated.

sizeLink para esta definição

This is the fixed number of times the underlying field will be used.

remove_trailing_nullsLink para esta definição

By default, this is set to False. When False, each value from the repeated fields is stored. When set to True, any trailing values which are blank will be stripped from the result. If the underlying field has required=True, but remove_trailing_nulls is True, then null values are only allowed at the end, and will be stripped.

Alguns exemplos:

Code
SplitArrayField(IntegerField(required=True), size=3, remove_trailing_nulls=False)

["1", "2", "3"]  # -> [1, 2, 3]
["1", "2", ""]  # -> ValidationError - third entry required.
["1", "", "3"]  # -> ValidationError - second entry required.
["", "2", ""]  # -> ValidationError - first and third entries required.

SplitArrayField(IntegerField(required=False), size=3, remove_trailing_nulls=False)

["1", "2", "3"]  # -> [1, 2, 3]
["1", "2", ""]  # -> [1, 2, None]
["1", "", "3"]  # -> [1, None, 3]
["", "2", ""]  # -> [None, 2, None]

SplitArrayField(IntegerField(required=True), size=3, remove_trailing_nulls=True)

["1", "2", "3"]  # -> [1, 2, 3]
["1", "2", ""]  # -> [1, 2]
["1", "", "3"]  # -> ValidationError - second entry required.
["", "2", ""]  # -> ValidationError - first entry required.

SplitArrayField(IntegerField(required=False), size=3, remove_trailing_nulls=True)

["1", "2", "3"]  # -> [1, 2, 3]
["1", "2", ""]  # -> [1, 2]
["1", "", "3"]  # -> [1, None, 3]
["", "2", ""]  # -> [None, 2]

HStoreFieldLink para este cabeçalho

class HStoreFieldLink para esta definição

A field which accepts JSON encoded data for an HStoreField. It casts all values (except nulls) to strings. It is represented by an HTML <textarea>.

Range FieldsLink para este cabeçalho

This group of fields all share similar functionality for accepting range data. They are based on MultiValueField. They treat one omitted value as an unbounded range. They also validate that the lower bound is not greater than the upper bound. All of these fields use RangeWidget.

IntegerRangeFieldLink para este cabeçalho

class IntegerRangeFieldLink para esta definição

Based on IntegerField and translates its input into django.db.backends.postgresql.psycopg_any.NumericRange. Default for IntegerRangeField and BigIntegerRangeField.

DecimalRangeFieldLink para este cabeçalho

class DecimalRangeFieldLink para esta definição

Based on DecimalField and translates its input into django.db.backends.postgresql.psycopg_any.NumericRange. Default for DecimalRangeField.

DateTimeRangeFieldLink para este cabeçalho

class DateTimeRangeFieldLink para esta definição

Based on DateTimeField and translates its input into django.db.backends.postgresql.psycopg_any.DateTimeTZRange. Default for DateTimeRangeField.

DateRangeFieldLink para este cabeçalho

class DateRangeFieldLink para esta definição

Based on DateField and translates its input into django.db.backends.postgresql.psycopg_any.DateRange. Default for DateRangeField.

WidgetsLink para este cabeçalho

RangeWidgetLink para este cabeçalho

class RangeWidget(base_widget, attrs=None)Link para esta definição

Widget used by all of the range fields. Based on MultiWidget.

RangeWidget has one required argument:

base_widgetLink para esta definição

A RangeWidget comprises a 2-tuple of base_widget.

decompress(value)Link para esta definição

Takes a single “compressed” value of a field, for example a DateRangeField, and returns a tuple representing a lower and upper bound.