Claude Paroz
c651331b34
Converted usage of ugettext* functions to their gettext* aliases
...
Thanks Tim Graham for the review.
2017-02-07 09:04:04 +01:00
Vytis Banaitis
8838d4dd49
Refs #23919 -- Replaced kwargs.pop() with keyword-only arguments.
2017-02-01 11:41:56 -05:00
Vytis Banaitis
d1bab24e01
Refs #23919 , #27778 -- Removed obsolete mentions of unicode.
2017-01-26 08:19:27 -05:00
chillaranand
d6eaf7c018
Refs #23919 -- Replaced super(ClassName, self) with super().
2017-01-25 12:23:46 -05:00
Claude Paroz
042b7350a0
Refs #23919 -- Removed unneeded str() calls
2017-01-20 14:13:55 +01:00
Simon Charette
cecc079168
Refs #23919 -- Stopped inheriting from object to define new style classes.
2017-01-19 08:39:46 +01:00
Claude Paroz
7b2f2e74ad
Refs #23919 -- Removed six.<various>_types usage
...
Thanks Tim Graham and Simon Charette for the reviews.
2017-01-18 20:18:46 +01:00
Claude Paroz
f3c43ad1fd
Refs #23919 -- Removed python_2_unicode_compatible decorator usage
2017-01-18 13:44:34 +01:00
Claude Paroz
d7b9aaa366
Refs #23919 -- Removed encoding preambles and future imports
2017-01-18 09:55:19 +01:00
Tim Graham
933dc62742
Refs #16508 -- Removed virtual aliases of "private fields".
...
Per deprecation timeline.
2017-01-17 20:52:03 -05:00
Tim Graham
bcf3532ede
Refs #26154 -- Removed deprecated CommaSeparatedIntegerField.
2017-01-17 20:52:02 -05:00
Tim Graham
733c7c7030
Refs #24716 -- Removed Field._get_val_from_obj() per deprecation timeline.
2017-01-17 20:52:00 -05:00
Tim Graham
625e9da9ca
Removed Field.rel and Field.remote_field.to per deprecation timeline.
2017-01-17 14:09:28 -05:00
Tim Graham
09a7f121b5
Removed unneeded values in NullBooleanField.formfield().
...
These values are duplicated in the super().
2016-12-20 07:54:54 -05:00
Adam Chainz
d2a26c1a90
Optimized Model instantiation a bit.
...
* Avoid some unnecessary attribute lookups, e.g. access signals directly rather than from module
* Alias some repeat accesses inside the method to use the slightly faster local lookups
* Use tuple to iterate remaining kwargs as it's faster to construct
* Cache Field.get_default() to avoid running through all the logic on every call
* Use a cached list of the properties on the model class to avoid repeat isinstance() calls
2016-12-15 13:42:44 -05:00
Morgan Aubert
ef889d5b10
Fixed #27599 -- Fixed Field.__str__() crash for fields not attached to models.
2016-12-14 14:04:26 -05:00
Adam Chainz
6252fd6314
Fixed #27532 -- Deprecated Model._meta.has_auto_field
2016-11-25 13:24:11 -05:00
Ramin Farajpour Cami
967be82443
Fixed E305 flake8 warnings.
2016-11-14 12:30:46 -05:00
Tim Graham
2f9861d823
Fixed #27148 -- Fixed ModelMultipleChoiceField crash with invalid UUID.
2016-10-31 15:21:05 -04:00
Chris Lamb
9027e6c8a3
Fixed #27235 -- Removed some usage of mutable default arguments.
2016-09-16 15:48:08 -04:00
Claude Paroz
2ced2f785d
Replaced smart_* by force_* calls whenever possible
...
The smart_* version should only be used when a lazy string should keep
its lazy status.
2016-09-03 13:46:41 +02:00
Eduard Stepanov
49b4596cb4
Fixed #26786 -- Avoided redundant max value validators on integer fields.
2016-06-28 11:39:20 -04:00
Jon Dufresne
267dc4addd
Fixed #4136 -- Made ModelForm save empty values for nullable CharFields as NULL.
...
Previously, empty values were saved as strings.
2016-06-13 09:14:36 -04:00
Michal Petrucha
effb4ed6f5
Replaced a hardcoded LOOKUP_SEP in models/fields/__init__.py
2016-06-09 11:57:00 -04:00
Claude Paroz
388bb5bd9a
Fixed #22936 -- Obsoleted Field.get_prep_lookup()/get_db_prep_lookup()
...
Thanks Tim Graham for completing the initial patch.
2016-05-04 20:02:01 +02:00
Tim Graham
eab5df12b6
Refs #22936 -- Moved more of Field.get_db_prep_lookup() to lookups.
2016-05-02 07:58:24 -04:00
Anssi Kääriäinen
7f51876f99
Fixed #26207 -- Replaced dynamic classes with non-data descriptors for deferred instance loading.
2016-04-29 13:06:32 -04:00
Tim Graham
1ba0b22a7a
Refs #22936 -- Removed unused code in Field.get_db_prep_lookup().
2016-04-25 08:31:32 -04:00
Tim Graham
901dc90db0
Removed unused/untested Field.get_choices_default()/value_to_string() methods.
2016-04-25 08:05:27 -04:00
Loïc Bistuer
a885bca1df
Fixed #26528 -- Allowed any iterable (e.g. tuple) as validators kwarg for form/model fields.
2016-04-22 09:38:47 +07:00
Michal Petrucha
c339a5a6f7
Refs #16508 -- Renamed the current "virtual" fields to "private".
...
The only reason why GenericForeignKey and GenericRelation are stored
separately inside _meta is that they need to be cloned for every model
subclass, but that's not true for any other virtual field. Actually,
it's only true for GenericRelation.
2016-04-13 10:10:53 -04:00
Tim Graham
1c30a6473d
Refs #22936 -- Moved IntegerField.get_prep_lookup() logic to lookups.
2016-04-12 10:14:41 -04:00
Tim Graham
df8d8d4292
Fixed E128 flake8 warnings in django/.
2016-04-08 09:51:06 -04:00
Tim Graham
2cd2d18851
Fixed W503 flake8 warnings.
2016-04-04 17:14:26 -04:00
Markus Holtermann
103d4e1d65
Fixed #26441 -- Added model Field.db_check() method
...
Thanks Common Code for financing the work on this commit.
2016-04-03 09:56:59 +02:00
Claude Paroz
204e00c0c5
Fixed #26140 -- Suppressed MySQL warning when inserting binary content
...
Thanks Tim Graham for the review.
2016-03-14 18:08:13 +01:00
Tim Graham
4f0cd0fd16
Fixed #26324 -- Fixed DurationField with fractional seconds on SQLite.
2016-03-10 12:18:29 -05:00
Tim Graham
004ba0f99e
Removed unneeded hint=None/obj=None in system check messages.
2016-02-12 13:01:25 -05:00
Markus Holtermann
18afd50a2b
Updated allow_migrate() signature in check framework tests
2016-02-12 14:31:27 +11:00
Anssi Kääriäinen
46ecfb9b3a
Fixed #26196 -- Made sure __in lookups use to_field as default.
...
Thanks Simon Charette for the test.
2016-02-11 11:09:08 -05:00
Brobin
dca8b916ff
Fixed #26154 -- Deprecated CommaSeparatedIntegerField
2016-02-10 17:57:43 -05:00
Alexander Sosnovskiy
2a7ce34600
Fixed #14286 -- Added models.BigAutoField.
2015-12-25 20:01:31 -05:00
Alexander Sosnovskiy
b61eab18f7
Fixed #13774 -- Added models.Field.rel_db_type().
2015-12-04 07:55:41 -05:00
Simon Charette
976bd519a8
Revert "Fixed #25417 -- Added a field check for invalid default values."
...
This reverts commit 71ebcb85b9
.
2015-10-27 11:02:35 -04:00
Josh Smeaton
534aaf56f4
Fixed #24629 -- Unified Transform and Expression APIs
2015-09-21 19:56:24 +10:00
Simon Charette
71ebcb85b9
Fixed #25417 -- Added a field check for invalid default values.
2015-09-18 14:31:36 -04:00
Iulia Chiriac
75ed590032
Fixed #24636 -- Added model field validation for decimal places and max digits.
2015-09-18 14:30:20 -04:00
Tim Graham
0e925de245
Removed obsolete TODO about moving CommaSeparatedIntegerField into contrib.
2015-09-01 09:13:20 -04:00
Alex Hill
7bec480fe2
Fixed #24201 -- Added order_with_respect_to support to GenericForeignKey.
2015-08-27 09:20:17 -04:00
Ion Scerbatiuc
0cc059cd10
Fixed #25172 -- Fixed check framework to work with multiple databases.
2015-08-12 18:00:26 -04:00
Tim Graham
770449e24b
Removed unused Field.get_flatchoices() method.
...
Unused since c2ba59fc1d
(Django 1.0).
Thanks Andy Baker for the report.
2015-08-03 13:08:24 -04:00
Edward Henderson
f8cc464452
Fixed #16501 -- Added an allow_unicode parameter to SlugField.
...
Thanks Flavio Curella and Berker Peksag for the initial patch.
2015-07-17 13:48:58 -04:00
Thomas Stephenson
035b0fa60d
Fixed #24716 -- Deprecated Field._get_val_from_obj()
...
The method duplicates the functionality of Field.value_from_object()
and has the additional downside of being a privately named public
API method.
2015-07-14 09:13:22 -04:00
Tim Graham
7da3923ba0
Sorted imports in __init__.py files.
2015-06-27 11:53:33 -04:00
Tim Graham
aaacaeb096
Renamed RemovedInDjangoXYWarnings for new roadmap.
...
Forwardport of ae1d663b79
from stable/1.8.x plus more.
2015-06-24 16:08:20 -04:00
Tim Graham
4b600ed244
Removed django.utils.functional.total_ordering()
2015-06-15 13:15:24 -04:00
Cole Maclean
20ff296cb1
Fixed #24859 -- Made QuerySet.get() with UUIDField raise TypeError on bad value.
...
For consistency with AutoField.
2015-06-06 19:46:05 -04:00
Matthew Somerville
2dc93bb10a
Fixed #22316 -- Added time filters to TimeField on SQLite.
...
This was implemented for non-SQLite backends in 1.7 (as a
side effect of #16187 ).
2015-06-04 22:27:13 -04:00
Rolo
19e67c6cd1
Fixed #24677 -- Made TextField.to_python() return a string.
...
This is consistent with CharField.
2015-06-04 09:02:54 -04:00
Jon Dufresne
44f3ee7716
Fixed #9596 -- Added date transform for DateTimeField.
2015-06-02 08:49:10 -04:00
Alasdair Nicol
d091b75eef
Fixed #24818 -- Prevented models.CharField from accepting a string as max_length
2015-05-19 08:06:39 -04:00
Aymeric Augustin
54026f1e8d
Renamed value_to_db_xxx to adapt_xxxfield_value.
...
This mirrors convert_xxxfield_value nicely, taking advantage of the
adapter/converter terminology which is commonly used by DB-API modules.
2015-05-17 09:39:34 +02:00
Piotr Jakimiak
4157c502a5
Removed unnecessary arguments in .get method calls
2015-05-13 20:51:18 +02:00
Matt Robenolt
8a54526592
Removed redundant removal of hyphens in UUIDField.
2015-05-11 07:11:50 -04:00
Pradeek
6123e6134f
Fixed #24708 -- Handled non-string values in GenericIPAddressField.to_python()
2015-05-06 07:03:31 -04:00
Jon Dufresne
b5e0eede40
Fixed #22394 -- Refactored built-in datetime lookups to transforms.
2015-04-20 15:11:11 -04:00
Anssi Kääriäinen
8f30556329
Renamed Field.rel attribute to remote_field
...
Field.rel is now deprecated. Rel objects have now also remote_field
attribute. This means that self == self.remote_field.remote_field.
In addition, made the Rel objects a bit more like Field objects. Still,
marked ManyToManyFields as null=True.
2015-03-25 08:16:12 -04:00
David Szotten
80e3444eca
Fixed #24483 -- Prevented keepdb from breaking with generator choices.
...
If Field.choices is provided as an iterator, consume it in __init__ instead
of using itertools.tee (which ends up holding everything in memory
anyway). Fixes a bug where deconstruct() was consuming the iterator but
bypassing the call to `tee`.
2015-03-24 11:42:53 -04:00
Michael Angeletti
ea3168dc6c
Fixed #24376 -- added verbose_name arg to UUIDField
2015-02-21 13:27:49 -05:00
Marc Tamlyn
4755f8fc25
Fixed #24343 -- Ensure db converters are used for foreign keys.
...
Joint effort between myself, Josh, Anssi and Shai.
2015-02-20 11:35:51 +00:00
Josh Smeaton
de0241eb98
Fixed #24319 -- Added validation for UUID model field
2015-02-13 09:45:53 +11:00
Tim Graham
2d7c27d387
Fixed #24302 -- Added DurationField.formfield()
2015-02-09 10:20:01 -05:00
Tim Graham
0f54cf28c0
Added UUIDField.deconstruct()
2015-02-05 19:15:02 -05:00
Anssi Kääriäinen
8adc59038c
Fixed #23617 -- Added get_pk_value_on_save()
...
The method is mainly intended for use with UUIDField. For UUIDField we
want to call the field's default even when primary key value is
explicitly set to None to match the behavior of AutoField.
Thanks to Marc Tamlyn and Tim Graham for review.
2015-02-03 09:23:44 -05:00
Loic Bistuer
84b6c76830
Fixed #24210 -- Cleaned up relational fields __init__().
...
Thanks Collin Anderson and Tim Graham for the reviews.
2015-01-27 22:35:49 +07:00
Tim Graham
33457cd3b0
Removed IPAddressField per deprecation timeline; refs #20439 .
2015-01-19 11:12:57 -05: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
916e38802f
Move % addition to lookups, refactor postgres lookups.
...
These refactorings making overriding some text based lookup names on
other fields (specifically `contains`) much cleaner. It also removes a
bunch of duplication in the contrib.postgres lookups.
2015-01-10 16:18:19 +00:00
Anssi Kääriäinen
0c7633178f
Fixed #24020 -- Refactored SQL compiler to use expressions
...
Refactored compiler SELECT, GROUP BY and ORDER BY generation.
While there, also refactored select_related() implementation
(get_cached_row() and get_klass_info() are now gone!).
Made get_db_converters() method work on expressions instead of
internal_type. This allows the backend converters to target
specific expressions if need be.
Added query.context, this can be used to set per-query state.
Also changed the signature of database converters. They now accept
context as an argument.
2015-01-08 14:07:54 -05:00
Michał Modzelewski
ee86e59051
Refs #2443 -- Allowed creation of objects with NULL DurationFields
2015-01-07 08:33:26 -05:00
Josh Smeaton
5a4ac4ead9
Fixed #24078 -- Removed empty strings from GenericIPAddressField
2015-01-07 08:08:36 -05:00
Daniel Pyrathon
fb48eb0581
Fixed #12663 -- Formalized the Model._meta API for retrieving fields.
...
Thanks to Russell Keith-Magee for mentoring this Google Summer of
Code 2014 project and everyone else who helped with the patch!
2015-01-06 19:25:12 -05:00
Tim Graham
c87ee41954
Fixed #23861 -- Added an API to deprecate model fields.
...
Thanks Markus Holterman and Berker Peksag for review.
2015-01-05 11:35:36 -05:00
Daniel Pyrathon
8958170755
Fixed #9104 -- Moved FieldDoesNotExist to core.exceptions
2015-01-02 10:46:04 -05:00
Tim Graham
40a8504357
Fixed #23891 -- Moved deprecation of IPAddressField to system check framework.
...
Thanks Markus Holtermann for review.
2015-01-01 13:30:52 -05:00
Tim Graham
93d73dac91
Moved DatabaseCreation.data_types properties to DatabaseWrapper.
...
refs #22340 .
2014-12-31 08:29:17 -05:00
Tim Graham
69ee7c8d76
Removed models.Field.bind() -- unused/undocumented since at least 1.0.
2014-12-23 14:23:58 -05:00
Marc Tamlyn
962bb9b6bd
Refs #2443 -- Move the durationfield converter logic.
...
This reduces how frequently this logic is run significantly.
Thanks to Anssi for the suggestion.
2014-12-23 10:41:42 +00:00
Marc Tamlyn
5ca82e710e
Fixed #24033 -- Use interval type on Oracle.
...
Use INTERVAL DAY(9) TO SECOND(6) for Durationfield on Oracle rather than
storing as a NUMBER(19) of microseconds.
There are issues with cx_Oracle which require some extra data
manipulation in the database backend when constructing queries, but it
handles the conversion back to timedelta objects cleanly.
Thanks to Shai for the review.
2014-12-23 10:38:32 +00:00
Marc Tamlyn
57554442fe
Fixed #2443 -- Added DurationField.
...
A field for storing periods of time - modeled in Python by timedelta. It
is stored in the native interval data type on PostgreSQL and as a bigint
of microseconds on other backends.
Also includes significant changes to the internals of time related maths
in expressions, including the removal of DateModifierNode.
Thanks to Tim and Josh in particular for reviews.
2014-12-20 18:28:29 +00:00
Josh Smeaton
267a1dcd9b
Fixed #23941 -- Removed implicit decimal formatting from expressions.
2014-12-12 10:17:48 -05:00
Marc Tamlyn
6b2d3f9206
Remove text-mangling of default values.
2014-12-09 09:10:51 +00:00
MattBlack85
e9d1f1182a
Fixed #23801 -- Added warning when max_length is used with IntegerField
2014-11-26 18:41:54 -05:00
Josh Smeaton
f59fd15c49
Fixed #14030 -- Allowed annotations to accept all expressions
2014-11-15 14:00:43 +00:00
Tim Graham
aa77e90aa9
Remove Field.get_validator_unique_lookup_type()
...
Usage of this method was removed pre 1.0 (c2ba59fc
).
2014-11-12 20:11:40 +01:00
Andy Chosak
ceb1ffcc8d
Fixed #23420 - broken warning for unbound naive datetime objects
...
Fixed issue with warning message displayed for unbound naive datetime
objects when USE_TZ is True. Adds unit test that demonstrates the issue
(discoverable when using a custom lookup in MySQL).
2014-11-03 15:51:48 +02:00
Thomas Chaumeny
b2aad7b836
Replaced set([foo, ...]) by {foo, ...} literals. Refs PR 3282.
...
Thanks Collin Anderson for the review.
2014-09-29 00:01:38 +07:00
Marc Tamlyn
ed7821231b
Fixed #19463 -- Added UUIDField
...
Uses native support in postgres, and char(32) on other backends.
2014-09-16 10:08:09 +01:00
Marc Tamlyn
e9103402c0
Fixed #18757 , #14462 , #21565 -- Reworked database-python type conversions
...
Complete rework of translating data values from database
Deprecation of SubfieldBase, removal of resolve_columns and
convert_values in favour of a more general converter based approach and
public API Field.from_db_value(). Now works seamlessly with aggregation,
.values() and raw queries.
Thanks to akaariai in particular for extensive advice and inspiration,
also to shaib, manfre and timograham for their reviews.
2014-09-03 20:36:03 +01:00
Tim Graham
fcd42a4819
Removed code that assumed BooleanField could be null.
...
Such a field will no longer pass model validation.
2014-08-05 07:49:53 -04:00