0

我有 3 个表,我希望显示它们与第 4 个表名 Pivot 相互关联

# 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

这是“关联”三个实体的正确方法吗,如果是这样,我将如何在管理员中显示所有相关条目?

谢谢。

4

1 回答 1

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")

至于管理员,您可以通过向 ReportAdmin 类添加方法然后在 list_display 属性中引用它们来添加它显示它的不同属性。您还可以将它们添加到list_filter以便您可以按值过滤掉。

于 2013-08-13T02:09:58.653 回答