Sorry Alex, I should have been more clear, I need to access the fields of
another model.  I went ahead and did what you said to try and get it
working, and I was able to get the fields from the form's model, but I get
an error when trying to assign them to the choices property of my field.

The following code gives the following error:

class ShelfAdmin(admin.ModelAdmin):
    sort_by = forms.ChoiceField(choices = ())

    def __init__(self, *args, **kwargs):
        super(ShelfAdmin, self).__init__(*args, **kwargs)

        sort_by_choices = [('', '-------')]

        for field in self.model._meta.fields:
            sort_by_choices.append((field.name, field.verbose_name.title()))

        self.fields['sort_by'].choices = sort_by_choices

admin.site.register(Shelf, ShelfAdmin)
TypeError at /admin/shelf/shelf/add/

'NoneType' object is unsubscriptable


Which I guess means that self.fields is None.  Any idea why this might be
happening?

On Wed, Mar 11, 2009 at 11:35 AM, Alex Gaynor <alex.gay...@gmail.com> wrote:

>
>
> On Wed, Mar 11, 2009 at 10:33 AM, Alex Jillard <mez...@gmail.com> wrote:
>
>> I'm trying to populate an admin form with the field names of of a model
>> class, but I don't want to have to instantiate that model just to read it's
>> fields from _meta.
>>
>> I basically want to do something like this:
>>
>> self.fields['sort_by'].choices = [(field.verbose_name, field.name) for
>> field in field_list]
>>
>> field_list would be the equivalent to model_instance._meta.fields, but
>> without requiring the model instance.
>>
>> I know I could just grab an instance of the model from the database, but
>> I'd like this to work even if there are no instances currently saved.
>>
>>
>>
> _meta exists on the class as well, so on a ModelAdmin you can do
> self.model._meta.fields
>
> Alex
>
> --
> "I disapprove of what you say, but I will defend to the death your right to
> say it." --Voltaire
> "The people's good is the highest law."--Cicero
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to