Commit Graph

31 Commits

Author SHA1 Message Date
Dmitry Dygalo e9c9f2ed82 [1.8.x] Fixed #25666 -- Fixed the exact lookup of ArrayField.
Backport of 263b3d2ba1 from master
2015-11-14 11:24:21 -05:00
Matthew Somerville 2c96b3da6f [1.8.x] Refs #24937 -- Backported more commits to fix for serialization of Date(Time)RangeField.
Instead of using DjangoJSONEncoder, use base_field's value_to_string().

Note this means the serialization of e.g. IntegerRangeField now has
strings for lower and upper, so use to_python when they came back in
(same behaviour as ArrayField, hopefully, from where I also got the
set_attributes_from_name function).

Backport of 86d9b10dc3 and
8a842148b6 from master
2015-11-12 09:22:44 -05:00
Matthew Somerville 3ded51bcf2 [1.8.x] Fixed #24937 -- Fixed serialization of Date(Time)RangeField.
Use the DjangoJSONEncoder so that datetime and date are encoded
appropriately.

Backport of 2926559cce from master
2015-11-11 16:53:26 -05:00
Tim Graham 69e6045ceb [1.8.x] Fixed #25597 -- Fixed crash with SplitArrayField and IntegerField on invalid value.
Backport of 1f07da3e29 from master
2015-10-27 08:13:27 -04:00
Caio Ariede 29fa1b5800 [1.8.x] Fixed #25180 -- Prevented varchar_patterns_ops and text_patterns_ops indexes for ArrayField.
Backport of dad8434d6f from master
2015-08-15 10:11:09 -04:00
Tim Graham ad2ac53054 [1.8.x] Fixed #25233 -- Fixed HStoreField.has_changed() handling of initial values.
Thanks Simon Charette for review.

Backport of a7b7f27c05 from master
2015-08-07 14:31:05 -04:00
Curtis Maloney 473af19273 [1.8.x] Fixed #25215 -- Solved reference to forms.HStoreField in declaration of HStoreField
Correct test which was using the model field in a test form.

Backport of 9f73009e98 from master
2015-08-04 19:19:05 +10:00
Andriy Sokolovskiy 66496c8403 [1.8.x] Added missing tests for transforms usage with subquery for PostgreSQL fields
Backport of 2a7c59cd88 from master
2015-06-06 09:12:07 -04:00
Andrea Grandi 62c19a21b6 Fixed #24844 -- Corrected has_changed implementation for HStoreField.
Backport of 43b2d88a5b from master
2015-05-25 21:10:07 -04:00
Villiers Strauss 4311fd2c0a [1.8.x] Fixed #24841 -- Made BaseRangeField.prepare_value() call base_field's prepare_value()
Backport of 614bec41b5 from master
2015-05-25 12:07:25 -04:00
Tim Graham df0674eabb [1.8.x] Fixed #24751 -- Fixed HStoreField isnull lookup.
Backport of 3c8fe5dddf from master
2015-05-13 10:34:15 -04:00
Alasdair Nicol c37eb3c870 [1.8.x] Fixed #24714 -- Used more specific assertions than assertEqual in tests.
Backport of eaeea6f947 from master
2015-04-28 09:31:35 -04:00
foresmac 3207fcd0a0 [1.8.x] Fixed #24341 -- Added specific error messages to RangeField subclasses
Backport of 1d1d5d1c31 from master
2015-02-20 16:50:41 -05:00
Marc Tamlyn b6ef67d752 [1.8.x] Fixed #24373 -- Added run_validators to ArrayField.
Thanks to DavidMuller for the report.

Backport of c490e410af from master
2015-02-20 11:53:17 +00:00
Tim Graham a00a0f8804 [1.8.x] Fixed #24290 -- Skipped postgres_tests if not running with PostgreSQL.
Backport of 8b39f33d78 from master
2015-02-17 06:35:17 -05:00
Markus Holtermann 45d93baf51 [1.8.x] Refs #22962 -- Made test case use non-conflicting table names
Backport of b06935a486 from master
2015-02-13 14:39:50 +01:00
Tim Graham a8b70d251d [1.8.x] Sorted imports with isort; refs #23860.
Backport of 0ed7d15563 from master
2015-02-09 14:24:06 -05:00
Ng Zhi An 56015c01c4 [1.8.x] Fixed #24170 -- Implemented decompress for BaseRangeField widgets
Backport of 4669b6a807 from master
2015-01-23 15:07:03 -05:00
Marc Tamlyn c80b2144d2 [1.8.x] Fixes #24169 -- More arrayfield specific lookups.
varchar()[] cannot compare itself to text[]

Thanks to joelburton for the patch.

Backport of 0ae94d0d31 from master
2015-01-20 10:26:32 +00:00
Marc Tamlyn 39d95fb6ad Fixed #24092 -- Widened base field support for ArrayField.
Several issues resolved here, following from a report that a base_field
of GenericIpAddressField was failing.

We were using get_prep_value instead of get_db_prep_value in ArrayField
which was bypassing any extra modifications to the value being made in
the base field's get_db_prep_value. Changing this broke datetime
support, so the postgres backend has gained the relevant operation
methods to send dates/times/datetimes directly to the db backend instead
of casting them to strings. Similarly, a new database feature has been
added allowing the uuid to be passed directly to the backend, as we do
with timedeltas.

On the other side, psycopg2 expects an Inet() instance for IP address
fields, so we add a value_to_db_ipaddress method to wrap the strings on
postgres. We also have to manually add a database adapter to psycopg2,
as we do not wish to use the built in adapter which would turn
everything into Inet() instances.

Thanks to smclenithan for the report.
2015-01-16 16:15:16 -05:00
Marc Tamlyn 48ad288679 Fixed #24001 -- Added range fields for PostgreSQL.
Added support for PostgreSQL range types to contrib.postgres.

- 5 new model fields
- 4 new form fields
- New validators
- Uses psycopg2's range type implementation in python
2015-01-10 16:18:19 +00:00
Jernej Kos 7c50e7eecc Fixed #24034 -- Don't always overwrite deconstruct path.
Made deconstruct path overwriting for ArrayField conditional,
so it only occurs when the deconstructed field is an instance
of ArrayField itself and not a subclass.
2014-12-21 17:31:50 +01:00
Thomas Chaumeny 17fe0bd808 Fixed #23423 -- Added unaccent lookup in django.contrib.postgres 2014-11-28 18:22:20 -05:00
Markus Holtermann 912ad03226 Fixed #23894 -- Made deconstruct methods favor kwargs over args 2014-11-28 06:05:56 -05:00
Daan Vielen a7c58eaca4 added test and fix to check for default null on ArrayField 2014-11-15 15:20:11 +00:00
Tim Graham ca48cef3b4 Removed unused import. 2014-11-04 11:27:35 -05:00
Marc Tamlyn 36f514f065 Added HStoreField.
Thanks to `django-hstore` for inspiration in some areas, and many people
for reviews.
2014-11-04 09:26:40 +00:00
Marc Tamlyn ef9f109013 Fixed #22962 -- Default values for ArrayField with migrations.
Fields normally try to force the default value to a string. As
translatable strings are not valid default values for ArrayField, we can
remove this behaviour which was causing issues with some migrations.

Thanks to @schinckel for the report.
2014-07-29 10:37:11 +01:00
Marc Tamlyn b65a2001e7 Fixed #22907 -- Array contains must have same type. 2014-07-15 19:41:26 +01:00
Marc Tamlyn 635acf42c5 Fix a test dependent on json ordering. 2014-05-22 15:05:19 +01:00
Marc Tamlyn 604162604b Added array field support for PostgreSQL.
The first part of django.contrib.postgres, including model and two form
fields for arrays of other data types.

This commit is formed of the following work:

    Add shell of postgres app and test handling.

    First draft of array fields.

    Use recursive deconstruction.

    Stop creating classes at lookup time.

    Add validation and size parameter.

    Add contained_by lookup.

    Add SimpleArrayField for forms.

    Add SplitArrayField (mainly for admin).

    Fix prepare_value for SimpleArrayField.

    Stop using MultiValueField and MultiWidget.

    They don't play nice with flexible sizes.

    Add basics of admin integration.

    Missing:
    - Tests
    - Fully working js

    Add reference document for django.contrib.postgres.fields.ArrayField.

    Various performance and style tweaks.

    Fix internal docs link, formalise code snippets.

    Remove the admin code for now.

    It needs a better way of handing JS widgets in the admin as a whole
    before it is easy to write. In particular there are serious issues
    involving DateTimePicker when used in an array.

    Add a test for nested array fields with different delimiters.

    This will be a documented pattern so having a test for it is useful.

    Add docs for SimpleArrayField.

    Add docs for SplitArrayField.

    Remove admin related code for now.

    definition -> description

    Fix typo.

    Py3 errors.

    Avoid using regexes where they're not needed.

    Allow passing tuples by the programmer.

    Add some more tests for multidimensional arrays.

    Also fix slicing as much as it can be fixed.

    Simplify SplitArrayWidget's data loading.

    If we aren't including the variable size one, we don't need to search
    like this.
2014-05-22 09:53:26 +01:00