#27582: PostgreSQL form and model HStoreFields do not support null values
-------------------------------------+-------------------------------------
Reporter: David | Owner: (none)
Hoffman |
Type: Bug | Status: assigned
Component: | Version: master
contrib.postgres |
Severity: Normal | Keywords: hstore hstorefield
Triage Stage: | Has patch: 0
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
= Overview
PostgreSQL allows values to be either strings or nulls in `hstore`:
https://www.postgresql.org/docs/9.5/static/hstore.html
It appears that the form and model HStoreFields do not support null
values. Is this something that should be fixed?
= How to reproduce for the form field
{{{
>>> from django.contrib.postgres import forms
>>> field = forms.HStoreField()
>>> field.clean('{"a": null}')
{u'a': u'None'}
}}}
== Expected Behavior
The null has been converted to a string, when it should actually be the
None value
= How to reproduce for the model field
{{{
>>> from django.contrib.postgres.fields import HStoreField
>>> field = HStoreField()
>>> field.clean({'a': None}, None)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Users/dhoffman/.envs/brain-campaign/lib/python2.7/site-
packages/django/db/models/fields/__init__.py", line 588, in clean
self.validate(value, model_instance)
File "/Users/dhoffman/.envs/brain-campaign/lib/python2.7/site-
packages/django/contrib/postgres/fields/hstore.py", line 36, in validate
params={'key': key},
ValidationError: [u'The value of "a" is not a string.']
}}}
== Expected Behavior
This should actually be allowed without error.
--
Ticket URL: <https://code.djangoproject.com/ticket/27582>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/051.55eb5a0dfc5623618564cc60e989a648%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.