I was wondering how I am able to use a foreign key to preform a search for example
class Product(models.Model):
name = models.CharField(max_length = 127)
description = models.TextField()
code = models.CharField(max_length = 127)
def __unicode__(self):
return self.name + " - " + self.code
class ProductLot(models.Model):
product = models.ForeignKey(Product)
code = models.CharField(max_length = 30)
lot_no = models.CharField(max_length = 30)
location = models.CharField(max_length = 127)
incoming = models.IntegerField()
commited = models.IntegerField()
available = models.IntegerField()
reorder = models.IntegerField()
created_date = models.DateField(auto_now_add=True)
def __unicode__(self):
return self.code + " - " + self.product.name + " - " + self.lot_no
class LotComment(models.Model):
product_lot = models.ForeignKey(ProductLot)
comment_user = models.ForeignKey(User, null=True)
comment_text = models.TextField()
created_date = models.DateField(auto_now_add=True)
def __unicode__(self):
return self.product_lot.product.code + " - " +
self.product_lot.product.name + " - " +
self.product_lot.lot_no + " - " + str(self.created_date)
than in my admin.py file I have
from CMS.Inventory.models import Product
class padmin(admin.ModelAdmin):
search_fields=['name', 'description', 'code', 'lot_no' ]
admin.site.register(Product, padmin)
but I want for 'LotComments' to be able to use the same search fields that 'Product' can as for code ect.
Hope I explained this well
For referencing the foreign key use
__
(two underscores):Adding to the previous answers. I would like to suggest Django Admin advance filters
User this plugin to add advance search and save advance search support. Also in your case foreign key fields can be mapped to a name.
You can specify related field searches in the admin
search_fields
the same way you do on Django querysets. Check on the documentation. For theLotComments
object, thesearch_fields
would look something like: