Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django raw_id_fields widget not showing search icon

I have the following code in my admin.py:

class UserManagedGroupAdmin(admin.ModelAdmin):
    inlines = [MembershipInline]
    search_fields = ('name', 'leader__username', )
    list_display = ('__unicode__', 'leader', )
    filter_horizontal = ('permissions', )
    raw_id_fields = ('leader', )

admin.site.register(UserManagedGroup, UserManagedGroupAdmin)

The magnifying glass icon for searching doesn't appear in the admin page.

This is what I'm getting:

enter image description here

As you can see it's showing the unicode method of the model instead of the search icon I want.

Field 'leader' is a ForeignKey to User.

Could it be that django disables the search for ForeignKeys to User for security reasons, or am I doing something wrong?

The widget would be perfect for choosing users... I mean, I can't leave a huge select there with every user of my site.

Thanks.

like image 209
Adrián Avatar asked May 15 '13 20:05

Adrián


2 Answers

I've found the problem thanks to this message in django-users.

I had to register in the admin the model to which the ForeignKey points to.

The search doesn't work without that.

like image 168
Adrián Avatar answered Sep 21 '22 23:09

Adrián


Hi encounter the same issue but reason's a bit different.

To integrate the User and UserGroup with another app's admin (e.g. some_app)

I added below code to some_app/admin.py

class ProxyUser(User):
    class Meta:
        proxy = True
        verbose_name = User._meta.verbose_name
        verbose_name_plural = User._meta.verbose_name_plural


class ProxyGroup(Group):
    class Meta:
        proxy = True
        verbose_name = Group._meta.verbose_name
        verbose_name_plural = Group._meta.verbose_name_plural

admin.site.unregister(Group)
admin.site.unregister(User)
admin.site.register(ProxyGroup)
admin.site.register(ProxyUser, UserAdmin)

I think the unregister(...) will affect the other app's admin Globally!

That's another cause of missing search icon.

like image 32
C.K. Avatar answered Sep 17 '22 23:09

C.K.