When I came across the same issue (model default values not being
selected), I simply stopped using form_for_model for new forms and
instead created an instance of my model in memory then used
form_for_instance... for eg:

p = Post()
PostForm = form_for_instance(p)

That way the default values for the model are set when the new object
is created.

Hope that's relevant to your situation... not 100% sure.

On Jul 25, 6:19 am, Patrick <[EMAIL PROTECTED]> wrote:
> On Tue, 24 Jul 2007 11:51:36 -0700, Doug B wrote:
> > I don't know how others have approached it, but I have a 'settings' file
> > with defaults defined in one place and reference those values via
> > imports in the form file and model file.  For values specific for the
> > app, I stick them in the models file.
>
> > models.py
> > ---------
> > POST_DEFAULTS = {'status':'published'}
>
> > class Post(models.Model):
> >         status  = models.CharField(
> >                         maxlength = 15,
> >                         choices = PUBLICATION_STATUS,
> >                         default = POST_DEFAULTS['status'])
>
> > forms.py
> > ---------
> > from app.models import POST_DEFAULTS,PUBLICATION_STATUS
>
> > class PostForm(forms.Form):
> >     status =
> > forms.CharField(forms.CharField(widget=forms.Select
>
> (choices=PUBLICATION_STATUS,
>
> > initial = POST_DEFAULTS['status'])
>
> > ---or--- if you are doing form_for_* (I don't use those, but this should
> > be close)
>
> > views.py
> > ---------
> > PostForm = form_for_model(Post)
> > PostForm.base_fields['status'].initial = POST_DEFAULTS['status'] form =
> > PostForm()
>
> > If you use the helpers, the important thing to remember is to modify the
> > base_fields dict before instantiating the form.  Yet another option, is
> > to create a callback function passed to form_for_model. The callback
> > function basically gets called for every field in the model and you have
> > the choice of making changes for each field.  That method always felt
> > cumbersome compared to just changing the values you need changed, so I
> > can't do it off the top of my head.  A search for formfield callback
> > should tell you how though.
>
> Thanks for this tip, Doug. It works.
>
> I somehow missed it in the docs.


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