#24858: Add support for get_foo_display() with ArrayField
----------------------------------+------------------------------------
     Reporter:  MounirMesselmeni  |                    Owner:  asser
         Type:  New feature       |                   Status:  assigned
    Component:  contrib.postgres  |                  Version:  master
     Severity:  Normal            |               Resolution:
     Keywords:                    |             Triage Stage:  Accepted
    Has patch:  1                 |      Needs documentation:  0
  Needs tests:  1                 |  Patch needs improvement:  0
Easy pickings:  1                 |                    UI/UX:  0
----------------------------------+------------------------------------

Comment (by asser):

 I think the usage in the description is slightly wrong; if specifying
 choices for an ArrayField the choices themselves should be lists:


 {{{#!python
 class Example(models.Model):
     CHOICES = (
         ([1, 2], 'value1'),
         ([3, 4], 'value2'),
         ([5], 'value3'),
     )
     multi_choices_array = ArrayField(
         base_field=models.IntegerField(),
         choices=CHOICES,
     )
 }}}

 To have an ArrayField that only accepts certain values on the base field,
 the usage would probably be:

 {{{#!python
 class Example(models.Model):
     CHOICES = (
         (1, 'value1'),
         (2, 'value2'),
         (3, 'value3'),
     )
     multi_choices_array = ArrayField(
         base_field=models.IntegerField(choices=CHOICES),
     )
 }}}

 Then supposedly you could add a forms.MultipleChoiceField to fill in the
 array's values?

 Neither of the two forms above currently work. I've managed to modify the
 postgres-specific code to handle the first case (choices being lists on
 the ArrayField) based on chedi's patch -- see
 https://github.com/asser/django/tree/ticket_24858 -- and am currently
 trying to figure out what goes wrong in the validation handling of the
 second case (choices on the base field).

--
Ticket URL: <https://code.djangoproject.com/ticket/24858#comment:7>
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 django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/074.20223c064d98c282a314c13bc7d125cb%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to