PostgreSQL-specifika formulärfält och widgetsLink to this heading
Alla dessa fält och widgets är tillgängliga från modulen django.contrib.postgres.forms.
FältLink to this heading
SimpleArrayFieldLink to this heading
- class SimpleArrayField(base_field, delimiter=',', max_length=None, min_length=None)Link to this definition
Ett fält som mappar till en array. Det representeras av en HTML
<input>.- base_fieldLink to this definition
Detta är ett nödvändigt argument.
Det anger det underliggande formulärfältet för arrayen. Detta används inte för att rendera någon HTML, men det används för att bearbeta de inskickade uppgifterna och validera dem. Ett exempel:
>>> 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 to this definition
Detta är ett valfritt argument som i standardfallet är ett kommatecken:
,. Detta värde används för att dela upp de data som skickas in. Det gör att du kan kedjaSimpleArrayFieldför flerdimensionella data:>>> 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 to this definition
Detta är ett valfritt argument som validerar att matrisen inte överstiger den angivna längden.
- min_lengthLink to this definition
Detta är ett valfritt argument som validerar att matrisen når minst den angivna längden.
SplitArrayFieldLink to this heading
- class SplitArrayField(base_field, size, remove_trailing_nulls=False)Link to this definition
Detta fält hanterar matriser genom att reproducera det underliggande fältet ett fast antal gånger.
- base_fieldLink to this definition
Detta är ett obligatoriskt argument. Det anger det formulärfält som ska upprepas.
- sizeLink to this definition
Detta är det fasta antal gånger som det underliggande fältet kommer att användas.
- remove_trailing_nullsLink to this definition
Som standard är detta inställt på
False. NärFalse, lagras varje värde från de upprepade fälten. När den är inställd påTruekommer alla efterföljande värden som är tomma att tas bort från resultatet. Om det underliggande fältet harrequired=True, menremove_trailing_nullsärTrue, är null-värden endast tillåtna i slutet och kommer att tas bort.Några exempel:
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 to this heading
- class HStoreFieldLink to this definition
Ett fält som accepterar JSON-kodade data för en
HStoreField. Det kastar alla värden (utom nulls) till strängar. Det representeras av en HTML<textarea>.
Område FältLink to this heading
Denna grupp av fält delar alla liknande funktionalitet för att acceptera intervalldata. De är baserade på MultiValueField. De behandlar ett utelämnat värde som ett obegränsat intervall. De validerar också att den nedre gränsen inte är större än den övre gränsen. Alla dessa fält använder RangeWidget.
IntegerRangeFieldLink to this heading
- class IntegerRangeFieldLink to this definition
Baserat på
IntegerFieldoch översätter dess indata tilldjango.db.backends.postgresql.psycopg_any.NumericRange. Standard förIntegerRangeFieldochBigIntegerRangeField.
DecimalRangeFieldLink to this heading
- class DecimalRangeFieldLink to this definition
Baserad på
DecimalFieldoch översätter dess indata tilldjango.db.backends.postgresql.psycopg_any.NumericRange. Standard förDecimalRangeField.
DatumTimeRangeFieldLink to this heading
- class DateTimeRangeFieldLink to this definition
Baserad på
DateTimeFieldoch översätter dess indata tilldjango.db.backends.postgresql.psycopg_any.DateTimeTZRange. Standard förDateTimeRangeField.
DatumintervallfältLink to this heading
- class DateRangeFieldLink to this definition
Baserat på
DateFieldoch översätter dess indata tilldjango.db.backends.postgresql.psycopg_any.DateRange. Standard förDateRangeField.
WidgetsLink to this heading
RangeWidgetLink to this heading
- class RangeWidget(base_widget, attrs=None)Link to this definition
Widget som används av alla fält i intervallet. Baserat på
MultiWidget.RangeWidgethar ett obligatoriskt argument:- base_widgetLink to this definition
En
RangeWidgetbestår av en 2-tupel avbase_widget.
- decompress(value)Link to this definition
Tar ett enda ”komprimerat” värde för ett fält, t.ex. ett
DateRangeField, och returnerar en tupel som representerar en nedre och övre gräns.