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 <[email protected]> wrote:
>
>
> On Wed, Mar 11, 2009 at 10:33 AM, Alex Jillard <[email protected]> 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 [email protected]
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
-~----------~----~----~----~------~----~------~--~---