On Sep 5, 11:19 am, Malcolm Tredinnick <[EMAIL PROTECTED]>
wrote:
> On Fri, 2008-09-05 at 03:11 -0700, mwebs wrote:
> > Hello,
>
> > I use amodelchoicefieldand want to remove the entry that represents
> > "no item selected"(<option value="">------</option>), because in my
> > scenario I will only allow to select between existing entries.
>
> Specify adefaultvalue for the field (one of the choices). Then that
> will be shown as the initially selected option.

I could not find a way to specify a default value.

> The empty choice isn't there because it's a valid option. It's actually
> a useful user-interface feature. If somebody submitted a form without
> making a choice, it would be invalid because the empty "----" choice is
> not valid. It's there because you didn't specify adefaultvalue and
> Django doesn't make a choice ofdefaultinitial value for you. The user
> has not yet made a selection, so they must choose one of the options
> explicitly. If they just hit "submit" without making a choice, Django is
> careful to ensure they don't accidentally end up selecting whichever
> option Django displayed first.
>
> Regards,
> Malcolm

Sounds reasonable. However I am using a RadioSelect widget in my "rite-
of-passage" first Django poll app. It looks very weird to see this on
a form (please forgive the crude ASCII art):

Vote Now:
* ----
* Yes
* No
[Submit]

However I looked at the django source code and found that you can set
empty_label to None to get rid of that first choice. Here is how I did
it in my form class:

from django import forms
from gpp.polls.models import Choice

class VoteForm(forms.Form):
   """Form for voting in a poll."""
   options = forms.ModelChoiceField(queryset = Choice.objects.none(),
widget = forms.RadioSelect)

   def __init__(self, poll_id):
      super(VoteForm, self).__init__()
      self.fields['options'].queryset =
Choice.objects.filter(poll=poll_id)
      self.fields['options'].empty_label = None

I hope this helps someone!

Best,
BN
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to