Brian, Are we to infer, by extrapolating, that since it appears that the coupling of the model definition and the form definition is undesirable passing the help_text argunment to a form will eventually not be done at the model? Instead, are we going to have to use a formfield_callback to pass the help_text to a form_for_model, for example?
-rm On Nov 2, 5:11 pm, Brian Rosner <[EMAIL PROTECTED]> wrote: > What you really need is to use the formfield_callback argument to > form_for_instance. This allows you to override the default fields > that are returned for a given field in the model [1]. There is an > open bug, [2], that will allow for an easier way of overriding the > queryset that is ultimately rendered as the options. Until then you > will just need to subclass ModelChoiceField and re-implement the > choices property to use a custom queryset that does the filtering you > are describing. > > [1]http://www.djangoproject.com/documentation/newforms/#overriding-the-d... > [2]http://code.djangoproject.com/ticket/4787 > > On Nov 1, 3:15 pm, rm <[EMAIL PROTECTED]> wrote: > > > I know this is a painful subject. I have spent a couple of days > > trying to figure this out, and I am almost there. (I think. :) > > > Here is the model (simplified to bare bones): > > > class away(models.Model): > > contact = models.ForeignKey(Contact, verbose_name="Name of person > > away", limit_choices_to= {'is_staff':True}, db_column='contact') > > > As you can see Contact is another model being referenced here which > > has a field named "is_staff" that I want to use to filter out some > > contacts so that they do not display as options in my form to add or > > edit away instances. Unfortunately, the filter seems to only affect > > the way the field is displayed in the admin forms, not on regular > > forms. > > > This is how the start of my view to edit away instances looks like: > > > def away_edit(request, away_id): > > aw = get_object_or_404(away, id=away_id) > > aw_form = forms.form_for_instance(aw) > > > When displaying that form the 'contact' field displays as a dropdown > > list, but it includes the choices I wanted filtered out. So, after a > > lot of searching, I found this post which seems to be addressing the > > same issue: > > >http://groups.google.com/group/django-users/browse_thread/thread/cbbf... > > > However, I can't make it work. This is how I have translated the > > advice to my view: > > > def away_edit(request, away_id): > > aw = get_object_or_404(away, id=away_id) > > aw_form = forms.form_for_instance(aw) > > aw_form.base_fields['contact']=forms.ChoiceField(choices=[(obj.id, > > obj.name) for obj in Contact.objects.filter(is_staff=True)]) > > > When I do that, the form displays correctly and it actually does > > filter out the choices as I want. But, when I submit the form I get > > an error telling me that "away_away.contact may not be NULL". > > > Can someone please explain to me why it gives me that error? --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---