Seems like an elegant and logical solution. Thanks, Michael! On Tue, 24 Jul 2007 21:04:50 +0000, Michael wrote:
> 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 -~----------~----~----~----~------~----~------~--~---