我希望通过第4个表格Pivot
显示3个表格# Manufacturer
id | name
# Product
id |name
# Part
id| name
# Pivot
id | part_name_fk | product_name_fk | manufacturer_name_fk
......以及将引用“Pivot”的第5张表
# Report
id |pivot_record_fk|this_week_use
这是“关联”三个实体的正确方法,如果是这样,我将如何在显示所有相关条目的管理中显示它?
感谢。
答案 0 :(得分:1)
你应该像这样结构化。
class Manufacturer(models.Model):
name = models.CharField()
class Product(models.Model):
name = models.CharField()
manufacturer = models.ForeignKey(Manufacturer, related_name="products")
class Part(models.Model):
name = models.CharField()
manufacturer = models.ForeignKey(Product, related_name="parts")
class Report(models.Model):
manufacturer = models.ForeignKey(Manufacturer, related_name="reports")
this_week_use
然后在报告中,您可以使用以下内容根据部件名称过滤掉(如果需要):
Report.objects.filter(manufacturer__product__part__name="Nail")
对于admin,您可以通过向ReportAdmin类添加方法然后在list_display属性中引用它们来添加它以显示它的不同属性。您也可以将它们添加到list_filter,以便按值过滤掉。