Re: newforms select field

2007-02-18 Thread paulh

As far as I can see the __init__ way of doing things creates a field
as opposed to a base_field. Given that this is done in the __init__
method every instance will have this field. Is there any disadvantage
in this? I suppose you could also have a base_field with the same name/
key. Looking at the django code there doesn't seem to be any real
difference between a base_field and a field that is created in the
__init__ method; or maybe I've missed something.

Paul Hide

On Feb 18, 6:21 am, "Honza Král" <[EMAIL PROTECTED]> wrote:
> On 2/18/07, paulh <[EMAIL PROTECTED]> wrote:
>
>
>
> > Thanks for the replies. As always, reading the docs again teaches you
> > a bit more than the first time; I now see that that initial was not
> > what I was after.
>
> > Arnaud, I think your method is more what I was after and as you say,
> > it does exactly what I wanted.
>
> > It seems to be much simpler than overriding the __init__ method. Is
> > that simplicity at some cost I wonder?
>
> yes, you must either wrap the form in a function or assin the choices
> every time you wish to work with the form. with overriding the
> __init__, it is part of the form and you don't have to think about it
> at all... depends how you want to use it...
>
>
>
>
>
> > Paul Hide
>
> > On Feb 18, 12:35 am, "Arnaud Delobelle" <[EMAIL PROTECTED]>
> > wrote:
> > > On Feb 17, 7:05 pm, "paulh" <[EMAIL PROTECTED]> wrote:
>
> > > > I feel the following should work:
> > > > class Myform(forms.Form):
> > > > ...publ = forms.ChoiceField(label='Publisher', required=False)
>
> > > > and then in handler I should be able to set the choices dynamically
> > > > by:
>
> > > > def meth(request):
> > > > ...frm=Myform(initial={'publ':((1,2),(2,3),(3,4)))}) #even if the
> > > > brackets are wrong here, they were right in the original
>
> > > That shouldn't work as initial is meant to set the value of a field.
>
> > > I had the same problem and a peek at the source told me that a
> > > ChoiceField has a 'choices' attribute which is settable so:
>
> > > form = MyForm(...)
> > > form.fields['publ'].choices = ((1,2),(2,3),(3,4))
>
> > > will work, but I don't know whether it is the right thing to do (TM).
>
> > > --
> > > Arnaud
>
> --
> Honza Kr?l
> E-Mail: [EMAIL PROTECTED]
> ICQ#:   107471613
> Phone:  +420 606 678585


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: newforms select field

2007-02-18 Thread Honza Král
On 2/18/07, paulh <[EMAIL PROTECTED]> wrote:
>
> Thanks for the replies. As always, reading the docs again teaches you
> a bit more than the first time; I now see that that initial was not
> what I was after.
>
> Arnaud, I think your method is more what I was after and as you say,
> it does exactly what I wanted.
>
> It seems to be much simpler than overriding the __init__ method. Is
> that simplicity at some cost I wonder?

yes, you must either wrap the form in a function or assin the choices
every time you wish to work with the form. with overriding the
__init__, it is part of the form and you don't have to think about it
at all... depends how you want to use it...

>
> Paul Hide
>
> On Feb 18, 12:35 am, "Arnaud Delobelle" <[EMAIL PROTECTED]>
> wrote:
> > On Feb 17, 7:05 pm, "paulh" <[EMAIL PROTECTED]> wrote:
> >
> > > I feel the following should work:
> > > class Myform(forms.Form):
> > > ...publ = forms.ChoiceField(label='Publisher', required=False)
> >
> > > and then in handler I should be able to set the choices dynamically
> > > by:
> >
> > > def meth(request):
> > > ...frm=Myform(initial={'publ':((1,2),(2,3),(3,4)))}) #even if the
> > > brackets are wrong here, they were right in the original
> >
> > That shouldn't work as initial is meant to set the value of a field.
> >
> > I had the same problem and a peek at the source told me that a
> > ChoiceField has a 'choices' attribute which is settable so:
> >
> > form = MyForm(...)
> > form.fields['publ'].choices = ((1,2),(2,3),(3,4))
> >
> > will work, but I don't know whether it is the right thing to do (TM).
> >
> > --
> > Arnaud
>
>
> >
>


-- 
Honza Kr�l
E-Mail: [EMAIL PROTECTED]
ICQ#:   107471613
Phone:  +420 606 678585

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: newforms select field

2007-02-18 Thread paulh

Thanks for the replies. As always, reading the docs again teaches you
a bit more than the first time; I now see that that initial was not
what I was after.

Arnaud, I think your method is more what I was after and as you say,
it does exactly what I wanted.

It seems to be much simpler than overriding the __init__ method. Is
that simplicity at some cost I wonder?

Paul Hide

On Feb 18, 12:35 am, "Arnaud Delobelle" <[EMAIL PROTECTED]>
wrote:
> On Feb 17, 7:05 pm, "paulh" <[EMAIL PROTECTED]> wrote:
>
> > I feel the following should work:
> > class Myform(forms.Form):
> > ...publ = forms.ChoiceField(label='Publisher', required=False)
>
> > and then in handler I should be able to set the choices dynamically
> > by:
>
> > def meth(request):
> > ...frm=Myform(initial={'publ':((1,2),(2,3),(3,4)))}) #even if the
> > brackets are wrong here, they were right in the original
>
> That shouldn't work as initial is meant to set the value of a field.
>
> I had the same problem and a peek at the source told me that a
> ChoiceField has a 'choices' attribute which is settable so:
>
> form = MyForm(...)
> form.fields['publ'].choices = ((1,2),(2,3),(3,4))
>
> will work, but I don't know whether it is the right thing to do (TM).
>
> --
> Arnaud


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: newforms select field

2007-02-17 Thread Arnaud Delobelle



On Feb 17, 7:05 pm, "paulh" <[EMAIL PROTECTED]> wrote:
> I feel the following should work:
> class Myform(forms.Form):
> ...publ = forms.ChoiceField(label='Publisher', required=False)
>
> and then in handler I should be able to set the choices dynamically
> by:
>
> def meth(request):
> ...frm=Myform(initial={'publ':((1,2),(2,3),(3,4)))}) #even if the
> brackets are wrong here, they were right in the original
>

That shouldn't work as initial is meant to set the value of a field.

I had the same problem and a peek at the source told me that a
ChoiceField has a 'choices' attribute which is settable so:

form = MyForm(...)
form.fields['publ'].choices = ((1,2),(2,3),(3,4))

will work, but I don't know whether it is the right thing to do (TM).

--
Arnaud


--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



Re: newforms select field

2007-02-17 Thread Honza Král
On 2/17/07, paulh <[EMAIL PROTECTED]> wrote:
>
> I feel the following should work:
> class Myform(forms.Form):
> ...publ = forms.ChoiceField(label='Publisher', required=False)
>
> and then in handler I should be able to set the choices dynamically
> by:
>
> def meth(request):
> ...frm=Myform(initial={'publ':((1,2),(2,3),(3,4)))}) #even if the
> brackets are wrong here, they were right in the original

by initial argument, you are meant to pass the initial VALUE (which
choice is currently selected), choices on the other hand are part of
the field's definition...

if you want to setup the choices dynamically, set it in the form's
__init__ (search the list for examples, there were quite a few)
>
> An appropriate variant of the above certainly works for non ordinary
> CharFields.
>
> Any ideas would be appreciated.
>
> Paul Hide
>
>
> >
>


-- 
Honza Kr�l
E-Mail: [EMAIL PROTECTED]
ICQ#:   107471613
Phone:  +420 606 678585

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---