#26131: model field choices are not enforced
-------------------------------------+-------------------------------------
Reporter: stiffupperlip | Owner: nobody
Type: Bug | Status: new
Component: Database layer | Version: 1.8
(models, ORM) |
Severity: Normal | Resolution:
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Description changed by stiffupperlip:
Old description:
> In Django 1.8.8 when I create a model class like below, choices are not
> enforced when creating an instance of the model class:
>
> {{{
> class HTTPMethod(models.Model):
> HTTP_METHODS = [(_, _) for _ in ['get', 'post', 'put', 'patch',
> 'delete', 'head', 'options', 'trace', 'connect']]
>
> id = models.AutoField(primary_key=True)
> name = models.CharField(choices=HTTP_METHODS, unique=True,
> max_length=255)
>
> h = HTTPMethod(name='something invalid')
> h.save()
> }}}
>
> No errors are raised and invalid data is stored in the model.
>
> Python 2.7.6 on Ubuntu 14.04
New description:
In Django 1.8.8 when I create a model class like below, `choices` are not
enforced when creating an instance of the model class:
{{{
class HTTPMethod(models.Model):
HTTP_METHODS = [(_, _) for _ in ['get', 'post', 'put', 'patch',
'delete', 'head', 'options', 'trace', 'connect']]
id = models.AutoField(primary_key=True)
name = models.CharField(choices=HTTP_METHODS, unique=True,
max_length=255)
h = HTTPMethod(name='something invalid')
h.save()
}}}
No errors are raised and invalid data is stored in the model.
Python 2.7.6 on Ubuntu 14.04
--
--
Ticket URL: <https://code.djangoproject.com/ticket/26131#comment:3>
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/071.f86d79f96860d21867abd92c33469504%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.