Django python 中的Search_fields
我想知道如何使用外键来执行搜索,例如
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”相同的搜索字段代码等
希望我解释得很好
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以在管理
search_fields
中指定相关字段搜索,就像在 Django 查询集中一样。查看文档 。对于LotComments
对象,search_fields
看起来像: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:添加到以前的答案。我想建议 Django Admin 高级过滤器
使用此插件添加高级搜索并保存高级搜索支持。
另外,在您的情况下,外键字段可以映射到名称。
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.
要引用外键,请使用
__
(两个下划线):For referencing the foreign key use
__
(two underscores):