2007-07-31 01:25:35 +08:00
|
|
|
"""
|
|
|
|
>>> from django.db.models.fields import *
|
2008-08-02 12:48:14 +08:00
|
|
|
>>> try:
|
|
|
|
... from decimal import Decimal
|
|
|
|
... except ImportError:
|
|
|
|
... from django.utils._decimal import Decimal
|
2007-07-31 01:25:35 +08:00
|
|
|
|
|
|
|
# DecimalField
|
|
|
|
|
2008-07-30 08:18:31 +08:00
|
|
|
>>> f = DecimalField(max_digits=4, decimal_places=2)
|
2007-07-31 01:25:35 +08:00
|
|
|
|
2008-08-02 12:48:14 +08:00
|
|
|
>>> f.to_python(3) == Decimal("3")
|
|
|
|
True
|
2007-07-31 01:25:35 +08:00
|
|
|
|
2008-08-02 12:48:14 +08:00
|
|
|
>>> f.to_python("3.14") == Decimal("3.14")
|
|
|
|
True
|
2007-07-31 01:25:35 +08:00
|
|
|
|
|
|
|
>>> f.to_python("abc")
|
|
|
|
Traceback (most recent call last):
|
|
|
|
...
|
Removed oldforms, validators, and related code:
* Removed `Manipulator`, `AutomaticManipulator`, and related classes.
* Removed oldforms specific bits from model fields:
* Removed `validator_list` and `core` arguments from constructors.
* Removed the methods:
* `get_manipulator_field_names`
* `get_manipulator_field_objs`
* `get_manipulator_fields`
* `get_manipulator_new_data`
* `prepare_field_objs_and_params`
* `get_follow`
* Renamed `flatten_data` method to `value_to_string` for better alignment with its use by the serialization framework, which was the only remaining code using `flatten_data`.
* Removed oldforms methods from `django.db.models.Options` class: `get_followed_related_objects`, `get_data_holders`, `get_follow`, and `has_field_type`.
* Removed oldforms-admin specific options from `django.db.models.fields.related` classes: `num_in_admin`, `min_num_in_admin`, `max_num_in_admin`, `num_extra_on_change`, and `edit_inline`.
* Serialization framework
* `Serializer.get_string_value` now calls the model fields' renamed `value_to_string` methods.
* Removed a special-casing of `models.DateTimeField` in `core.serializers.base.Serializer.get_string_value` that's handled by `django.db.models.fields.DateTimeField.value_to_string`.
* Removed `django.core.validators`:
* Moved `ValidationError` exception to `django.core.exceptions`.
* For the couple places that were using validators, brought over the necessary code to maintain the same functionality.
* Introduced a SlugField form field for validation and to compliment the SlugField model field (refs #8040).
* Removed an oldforms-style model creation hack (refs #2160).
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8616 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-08-27 15:19:44 +08:00
|
|
|
ValidationError: This value must be a decimal number.
|
2008-06-30 18:07:06 +08:00
|
|
|
|
2009-02-12 04:13:17 +08:00
|
|
|
>>> f = DecimalField(default=Decimal("0.00"))
|
|
|
|
>>> f.get_default()
|
|
|
|
Decimal("0.00")
|
|
|
|
|
2008-06-30 18:07:06 +08:00
|
|
|
>>> f = DecimalField(max_digits=5, decimal_places=1)
|
|
|
|
>>> x = f.to_python(2)
|
|
|
|
>>> y = f.to_python('2.6')
|
|
|
|
|
2008-07-29 13:09:29 +08:00
|
|
|
>>> f._format(x)
|
2008-06-30 18:07:06 +08:00
|
|
|
u'2.0'
|
2008-07-29 13:09:29 +08:00
|
|
|
>>> f._format(y)
|
2008-06-30 18:07:06 +08:00
|
|
|
u'2.6'
|
2008-07-29 13:09:29 +08:00
|
|
|
>>> f._format(None)
|
2008-06-30 18:07:06 +08:00
|
|
|
>>> f.get_db_prep_lookup('exact', None)
|
|
|
|
[None]
|
|
|
|
|
2008-07-29 13:09:29 +08:00
|
|
|
# DateTimeField and TimeField to_python should support usecs:
|
|
|
|
>>> f = DateTimeField()
|
|
|
|
>>> f.to_python('2001-01-02 03:04:05.000006')
|
|
|
|
datetime.datetime(2001, 1, 2, 3, 4, 5, 6)
|
|
|
|
>>> f.to_python('2001-01-02 03:04:05.999999')
|
|
|
|
datetime.datetime(2001, 1, 2, 3, 4, 5, 999999)
|
|
|
|
|
|
|
|
>>> f = TimeField()
|
|
|
|
>>> f.to_python('01:02:03.000004')
|
|
|
|
datetime.time(1, 2, 3, 4)
|
|
|
|
>>> f.to_python('01:02:03.999999')
|
|
|
|
datetime.time(1, 2, 3, 999999)
|
|
|
|
|
2008-08-29 10:40:56 +08:00
|
|
|
# Boolean and null boolean fields
|
|
|
|
>>> f = BooleanField()
|
|
|
|
>>> for val in (True, '1', 1):
|
|
|
|
... f.get_db_prep_lookup('exact', val)
|
|
|
|
[True]
|
|
|
|
[True]
|
|
|
|
[True]
|
|
|
|
>>> for val in (False, '0', 0):
|
|
|
|
... f.get_db_prep_lookup('exact', val)
|
|
|
|
[False]
|
|
|
|
[False]
|
|
|
|
[False]
|
|
|
|
|
|
|
|
>>> f = NullBooleanField()
|
|
|
|
>>> for val in (True, '1', 1):
|
|
|
|
... f.get_db_prep_lookup('exact', val)
|
|
|
|
[True]
|
|
|
|
[True]
|
|
|
|
[True]
|
|
|
|
>>> for val in (False, '0', 0):
|
|
|
|
... f.get_db_prep_lookup('exact', val)
|
|
|
|
[False]
|
|
|
|
[False]
|
|
|
|
[False]
|
|
|
|
>>> f.get_db_prep_lookup('exact', None)
|
|
|
|
[None]
|
2008-07-29 13:09:29 +08:00
|
|
|
|
2007-07-31 01:25:35 +08:00
|
|
|
"""
|