django python中的搜索_字段

django python中的搜索_字段,python,django-admin,Python,Django Admin,例如,我想知道如何使用外键进行搜索 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 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)
而不是我的admin.py文件

from CMS.Inventory.models import Product

class padmin(admin.ModelAdmin):
    search_fields=['name', 'description', 'code', 'lot_no' ]
admin.site.register(Product, padmin)
但我希望“LotComments”能够使用与“Product”相同的搜索字段,就像代码ect一样


希望我能很好地解释这一点

您可以像在Django QuerySet上一样,在admin
search\u字段中指定相关字段搜索。查一下电话号码。对于
LotComments
对象,
search\u字段
看起来像:

search_fields = ['product_lot__product__name', 
                 'product_lot__product__description', 
                 'product_lot__product__code',
                 'product_lot__lot_no']

要引用外键,请使用
\uuuu
(两个下划线):


对前面的答案进行补充。我想建议

使用此插件添加高级搜索并保存高级搜索支持。 在您的情况下,外键字段也可以映射到名称

class padmin(AdminAdvancedFiltersMixin, admin.ModelAdmin):
    advanced_filter_fields = ('name', ('product_lot__product__name', 'Product name'))
class padmin(AdminAdvancedFiltersMixin, admin.ModelAdmin):
    advanced_filter_fields = ('name', ('product_lot__product__name', 'Product name'))