#3345: Admin Search Fields From Related Models
---------------------------------------+------------------------------------
Reporter: [EMAIL PROTECTED] | Owner: adrian
Status: new | Component: Admin interface
Version: | Resolution:
Keywords: | Stage: Design decision
needed
Has_patch: 0 | Needs_docs: 0
Needs_tests: 0 | Needs_better_patch: 0
---------------------------------------+------------------------------------
Old description:
> I'm trying to in the Admin Change List Form have the ability to search
> records via information from a related model.
>
> Example
> When in case_files I would like to search by Company Name, this
> information is stored in a separate object.
>
> Can this be possible? Below is a sample of the models.py
>
> Regards
>
>
> class company_record(models.Model):
> midas_number = models.CharField(maxlength=10, verbose_name='Midas
> Number')
> company_name = models.CharField(maxlength=200, verbose_name='Company
> Name')
> midas_parent = models.CharField(maxlength=10, verbose_name='Midas
> Parent Member Number')
> parent_name = models.CharField(maxlength=200, verbose_name='Parent
> Company Name')
> company_status = models.CharField(maxlength=100, verbose_name='Member
> Current Status')
> company_cat = models.CharField(maxlength=10, verbose_name='Company
> Category')
> def __str__(self):
> return self.midas_number + " - " + self.company_name
> class Admin:
> pass
> list_display = ('midas_number', 'company_name', 'midas_parent',
> 'parent_name', 'company_status', 'company_cat')
> list_display_links = ('midas_number', 'company_name')
> list_filter = ('company_cat', 'company_status')
> search_fields = ['company_name']
> class Meta:
> verbose_name = "Company Record"
>
>
> class case_file(models.Model):
> midas_number_id = models.AutoField(primary_key=True)
> midas_number = models.ForeignKey(company_record,
> edit_inline=models.STACKED, num_in_admin=1, verbose_name="Company Name")
> fileid = models.CharField(maxlength=10, core=True, primary_key=True,
> verbose_name='File ID')
> file_state = models.CharField(maxlength=3, core=True,
> verbose_name='State')
> file_status = models.CharField(maxlength=10, core=True,
> verbose_name='File Current Status')
> file_open_date = models.DateField('File Open Date', core=True)
> file_close_date = models.DateField('File Close Date', core=True)
> owning_officer = models.CharField(maxlength=200, core=True,
> verbose_name='"Owning" Officer')
> owning_dept = models.CharField(maxlength=200, core=True,
> verbose_name='"Owning" Department')
> nature_of_matter = models.CharField(maxlength=200, core=True,
> verbose_name='Nature Of Matter')
> destroy_date = models.DateField('Destroy Date', core=True)
> purchase_order = models.CharField(maxlength=50, core=True,
> verbose_name='Purchase Order#')
> document_desc = models.CharField(maxlength=200, core=True,
> verbose_name='Description of Document')
>
> class Admin:
> fields = (
> ('File Status Details', {'fields': ('midas_number',
> 'fileid', 'file_state', 'file_status', 'file_open_date',
> 'file_close_date', 'destroy_date')}),
> ('File Details', {'fields': ('owning_officer',
> 'owning_dept', 'nature_of_matter', 'purchase_order', 'document_desc')}),
> )
> list_select_related = True
> search_fields = ['fileid', 'owning_officer', 'midas_number_id']
> list_display = ('midas_number', 'fileid', 'owning_officer',
> 'owning_dept', 'document_desc', 'file_status' )
> list_display_links = ('midas_number', 'fileid')
> list_filter = ('owning_officer', 'owning_dept',
> 'nature_of_matter', 'file_status', 'file_open_date' )
>
> class Meta:
> verbose_name = "Case File"
New description:
I'm trying to in the Admin Change List Form have the ability to search
records via information from a related model.
Example
When in case_files I would like to search by Company Name, this
information is stored in a separate object.
Can this be possible? Below is a sample of the models.py
Regards
{{{
class company_record(models.Model):
midas_number = models.CharField(maxlength=10, verbose_name='Midas
Number')
company_name = models.CharField(maxlength=200, verbose_name='Company
Name')
midas_parent = models.CharField(maxlength=10, verbose_name='Midas
Parent Member Number')
parent_name = models.CharField(maxlength=200, verbose_name='Parent
Company Name')
company_status = models.CharField(maxlength=100, verbose_name='Member
Current Status')
company_cat = models.CharField(maxlength=10, verbose_name='Company
Category')
def __str__(self):
return self.midas_number + " - " + self.company_name
class Admin:
pass
list_display = ('midas_number', 'company_name', 'midas_parent',
'parent_name', 'company_status', 'company_cat')
list_display_links = ('midas_number', 'company_name')
list_filter = ('company_cat', 'company_status')
search_fields = ['company_name']
class Meta:
verbose_name = "Company Record"
class case_file(models.Model):
midas_number_id = models.AutoField(primary_key=True)
midas_number = models.ForeignKey(company_record,
edit_inline=models.STACKED, num_in_admin=1, verbose_name="Company Name")
fileid = models.CharField(maxlength=10, core=True, primary_key=True,
verbose_name='File ID')
file_state = models.CharField(maxlength=3, core=True,
verbose_name='State')
file_status = models.CharField(maxlength=10, core=True,
verbose_name='File Current Status')
file_open_date = models.DateField('File Open Date', core=True)
file_close_date = models.DateField('File Close Date', core=True)
owning_officer = models.CharField(maxlength=200, core=True,
verbose_name='"Owning" Officer')
owning_dept = models.CharField(maxlength=200, core=True,
verbose_name='"Owning" Department')
nature_of_matter = models.CharField(maxlength=200, core=True,
verbose_name='Nature Of Matter')
destroy_date = models.DateField('Destroy Date', core=True)
purchase_order = models.CharField(maxlength=50, core=True,
verbose_name='Purchase Order#')
document_desc = models.CharField(maxlength=200, core=True,
verbose_name='Description of Document')
class Admin:
fields = (
('File Status Details', {'fields': ('midas_number',
'fileid', 'file_state', 'file_status', 'file_open_date',
'file_close_date', 'destroy_date')}),
('File Details', {'fields': ('owning_officer',
'owning_dept', 'nature_of_matter', 'purchase_order', 'document_desc')}),
)
list_select_related = True
search_fields = ['fileid', 'owning_officer', 'midas_number_id']
list_display = ('midas_number', 'fileid', 'owning_officer',
'owning_dept', 'document_desc', 'file_status' )
list_display_links = ('midas_number', 'fileid')
list_filter = ('owning_officer', 'owning_dept',
'nature_of_matter', 'file_status', 'file_open_date' )
class Meta:
verbose_name = "Case File"
}}}
Comment (by ubernostrum):
(fixing code formatting in original ticket)
--
Ticket URL: <http://code.djangoproject.com/ticket/3345#comment:2>
Django Code <http://code.djangoproject.com/>
The web framework for perfectionists with deadlines
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" 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-updates?hl=en
-~----------~----~----~----~------~----~------~--~---