Champs et composants de formulaires spécifiques à PostgreSQLLien vers cette rubrique
Tous ces champs et composants sont disponibles dans le module django.contrib.postgres.forms.
ChampsLien vers cette rubrique
SimpleArrayFieldLien vers cette rubrique
- class SimpleArrayField(base_field, delimiter=',', max_length=None, min_length=None)Lien vers cette définition
Un champ qui correspond à un tableau. Il est représenté par un élément HTML
<input>.- base_fieldLien vers cette définition
Ce paramètre est obligatoire.
Il définit le champ de formulaire de base du tableau. Ceci n’est pas utilisé pour produire du code HTML, mais pour traiter les données envoyées et les valider. Par exemple :
>>> 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
- delimiterLien vers cette définition
Il s’agit d’un paramètre facultatif dont la valeur par défaut est une virgule :
,. Cette valeur est utilisée pour séparer les données envoyées. Elle permet d’enchaîner des champsSimpleArrayFieldpour des données à plusieurs dimensions :>>> 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_lengthLien vers cette définition
C’est un paramètre facultatif qui valide que le tableau ne dépasse pas la longueur indiquée.
- min_lengthLien vers cette définition
C’est un paramètre facultatif qui valide que le tableau atteint au moins la longueur indiquée.
SplitArrayFieldLien vers cette rubrique
- class SplitArrayField(base_field, size, remove_trailing_nulls=False)Lien vers cette définition
Ce champ se charge des tableaux en reproduisant le champ de base un nombre défini de fois.
- base_fieldLien vers cette définition
Il s’agit d’un paramètre obligatoire. Il définit le champ de formulaire à répéter.
- sizeLien vers cette définition
Le nombre de fois que le champ de base va être utilisé.
- remove_trailing_nullsLien vers cette définition
Par défaut, cette valeur vaut
False. Dans ce cas, chaque valeur des champs répétés est stockée. Quand la valeur vautTrue, toute valeur en fin de tableau qui reste vierge est supprimée du résultat. Si le champ de base possèderequired=Truemais queremove_trailing_nullsvautTrue, les valeurs nulles ne sont permises qu’à la fin et elles seront ignorées.Quelques exemples :
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]
HStoreFieldLien vers cette rubrique
- class HStoreFieldLien vers cette définition
Un champ qui accepte des données codées en JSON pour un champ
HStoreField. Il force toutes les valeurs (sauf la valeur nulle) à des chaînes. En HTML, il est représenté par une balise<textarea>.
Champs d’intervalleLien vers cette rubrique
Ce groupe de champs partage des fonctionnalités identiques pour accepter des données d’intervalle. Ils sont basés sur MultiValueField. Ils traitent une valeur omise comme un intervalle illimité. Ils valident aussi que la limite inférieure n’est pas plus grande que la limite supérieure. Tous ces champs utilisent le composant RangeWidget.
IntegerRangeFieldLien vers cette rubrique
- class IntegerRangeFieldLien vers cette définition
Basé sur
IntegerFieldet traduit la valeur saisie en intervalledjango.db.backends.postgresql.psycopg_any.NumericRange. Champ de formulaire par défaut pourIntegerRangeFieldetBigIntegerRangeField.
DecimalRangeFieldLien vers cette rubrique
- class DecimalRangeFieldLien vers cette définition
Basé sur
DecimalFieldet traduit la valeur saisie en intervalledjango.db.backends.postgresql.psycopg_any.NumericRange. Champ de formulaire par défaut pourDecimalRangeField.
DateTimeRangeFieldLien vers cette rubrique
- class DateTimeRangeFieldLien vers cette définition
Basé sur
DateTimeFieldet traduit la valeur saisie en intervalledjango.db.backends.postgresql.psycopg_any.DateTimeTZRange. Champ de formulaire par défaut pourDateTimeRangeField.
DateRangeFieldLien vers cette rubrique
- class DateRangeFieldLien vers cette définition
Basé sur
DateFieldet traduit la valeur saisie en intervalledjango.db.backends.postgresql.psycopg_any.DateRange. Champ de formulaire par défaut pourDateRangeField.
Composants de formulaires (« widgets »)Lien vers cette rubrique
RangeWidgetLien vers cette rubrique
- class RangeWidget(base_widget, attrs=None)Lien vers cette définition
Composant utilisé par tous les champs d’intervalle. Basé sur
MultiWidget.RangeWidgetrequiert un paramètre obligatoire :- base_widgetLien vers cette définition
Un intervalle
RangeWidgetcomposé d’un tuple binaire debase_widget.
- decompress(value)Lien vers cette définition
Accepte une valeur « compressée » unique d’un champ, par exemple un intervalle
DateRangeField, et renvoie un tuple représentant les limites inférieure et supérieure.