Does anyone have a clue why I can't access ModelAdmin in
django.contrib.admin?

>>> from django.contrib import admin
>>> dir(admin)
['__builtins__', '__doc__', '__file__', '__name__', '__path__',
'models']

???

I'm trying to do this:

class ProjectAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.CommaSeparatedIntegerField: {'widget':
forms.SelectMultiple},
    }

admin.site.register(Project, ProjectAdmin)


OR this

class ProjectAdmin(admin.ModelAdmin):
    form = ProjectForm

admin.site.register(Project, ProjectAdmin)

class ProjectForm(forms.ModelForm):
    class Meta:
        model = Project
    stains = forms.CommaSeparatedIntegerField
(widget=forms.SelectMultiple(choices=STAINS_CHOICES))

but I can't figure out what I'm doing wrong.

-Adam

On Mar 26, 2:08 pm, Adam Fraser <adam.n.fra...@gmail.com> wrote:
> First, I want to thank you for sticking with me and helping me through
> this.  I've learned a lot, but unfortunately made no progress yet.
>
> I read the links you sent and ended up trying this in forms.py:
>
> from django.contrib import admin
> class ProjectAdmin(admin.ModelAdmin):
>     formfield_overrides = {
>         models.CommaSeparatedIntegerField: {'widget':
> forms.SelectMultiple},
>     }
>
> but I get an error " 'module' object has no attribute 'ModelAdmin' "
> (I verified this from python manage.py shell)
>
> My guess is I'm using an older django distribution.  Unfortunately,
> this isn't something I can update since it's on a server I have
> limited access to.
>
> Before taking this tack, I was trying something like this (again, in
> forms.py)
> (http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#overrid...
> )
>
> class ProjectForm(forms.ModelForm):
>     stains = forms.CommaSeparatedIntegerField
> (widget=forms.SelectMultiple(choices=STAINS_CHOICES))
>     class Meta:
>         model = Project
>
> ...with this I get a strange error:
> ViewDoesNotExist at /projectprofiler/admin/projects/project/504/
> Tried logout_view in module projectprofiler.projects.views. Error was:
> 'module' object has no attribute 'CommaSeparatedIntegerField'
> Request Method:         GET
> Request URL:    
> http://imageweb.broad.mit.edu:8081/projectprofiler/admin/projects/pro...
> Exception Type:         ViewDoesNotExist
> Exception Value:        Tried logout_view in module
> projectprofiler.projects.views. Error was: 'module' object has no
> attribute 'CommaSeparatedIntegerField'
> Exception Location:     /imaging/analysis/People/imageweb/python-packages/
> django/core/urlresolvers.py in _get_callback, line 184
> ...
> In template /home/radon01/afraser/projectprofiler/templates/admin/
> base.html, error at line 28
> 28    <a href="{% url projectprofiler.admin.views.main.password_change
> %}">{% trans 'Change password' %}</a>
>
> ...I can't figure out what the password_change view as to do with the
> commaseparatedintegerfield.
>
> Thanks again  :]
> Adam
>
> On Mar 26, 11:39 am, Brian Neal <bgn...@gmail.com> wrote:
>
> > On Mar 26, 9:59 am, Adam Fraser <adam.n.fra...@gmail.com> wrote:
>
> > > hrm, I think I'm _finally_ starting to understand how django is meant
> > > to be used.
>
> > > Question: Why can't I just specify the widget used by a particular
> > > field from my model in the admin interface.
>
> > > stains = models.CommaSeparatedIntegerField(widget=SelectMultiple
> > > (choices=STAIN_CHOICES))
>
> > > ...or can I?  You suggested something like this earlier only referred
> > > to forms.CommaSeparatedIntegerField rather than
> > > models.CommaSeparatedIntegerField.
>
> > > hrm
>
> > Models are simply models. They don't really say much about forms. What
> > the admin application does is to make some default choices about how
> > to display your model in the admin interface. It automatically builds
> > the form to edit your model using some very reasonable defaults. If
> > you aren't happy with those choices, you can provide the form that the
> > admin should use instead of the default one. In your form, you are
> > free to use different widgets for your fields and/or provide custom
> > behavior.
>
> > The docs describe how to provide your own form to the admin 
> > here:http://docs.djangoproject.com/en/dev/ref/contrib/admin/#form
>
> > You simply provide an attribute on your ModelAdmin called 'form', set
> > equal to the form class you want the admin to use. This form class
> > should inherit from ModelForm. You can then customize the widgets and
> > behavior anyway you would like.
>
> > ModelForms are discussed 
> > here:http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#topics-...
>
> > Overriding the default field type for a field on a ModelForm is a bit
> > further 
> > down:http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#overrid...
>
> > But before you read all that, make sure you understand forms in
> > Django, in 
> > general:http://docs.djangoproject.com/en/dev/topics/forms/#topics-forms-index
>
> > Armed with that info, you should be able to make a custom form for the
> > admin to use. Good luck.
>
> > BN
--~--~---------~--~----~------------~-------~--~----~
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