views:

26

answers:

1

My models:

class Contact(models.Model):
    first_name = models.CharField(_("First name"), max_length=30, )
    last_name = models.CharField(_("Last name"), max_length=30, )
    email = models.EmailField(_("Email"), blank=True, max_length=75)

class PhoneNumber(models.Model):
    contact = models.ForeignKey(Contact)
    phone = models.CharField(_("Phone Number"), blank=True, max_length=30, )
    primary = models.BooleanField(_("Primary"), default=False)

My admin.py:

class ContactOptions(AutocompleteAdmin):
    list_display = ('last_name', 'first_name')
    ordering = ['last_name']
    search_fields = ('first_name', 'last_name', 'email')
    related_search_fields = { """??? I want to search the Phone Numbers ???""" }

How to search the Phone Numbers in Django admin? Please give some code. Thank you very much!

+1  A: 

You're asking to be able to follow a reverse relation (ie, from PhoneNumber back to Contact) but I don't believe the double-underscore __ trick for spanning tables will work here.

If your Contact had the key to the PhoneNumber model instead of the current set-up:

class Contact(models.Model):
    ...
    phone = models.ForeignKey(PhoneNumber)

then in the admin config you could do:

search_fields = ('first_name', 'last_name', 'email', 'phone__phone')
stevejalim
Please don't touch my models :(
Tran Tuan Anh
In that case, you can't do it in the admin.
stevejalim
Ok, thanks. I will choose another ways.
Tran Tuan Anh