Django - Есть ли возможность как-то объединить несколько внешних ключей в 1 значение поля из другой модели? [дубликат]

Я хочу создать модель под названием DailyPerformance со следующими полями:

class DailyPerformance(models.Model):
  date = models.DateField()
  driver = models.ForeignKey(Employee, on_delete=models.CASCADE)
  TYPE_OF_GOODS_CHOICES = (
    ("Excavated soil", "Excavated soil"),
    ("Sand", "Sand"),
    ("Crushed stone", "Crushed stone"),...
  )
  type_of_goods = models.CharField(blank=True, null=True, max_length=30, choices=TYPE_OF_GOODS_CHOICES)
  place_of_loading = models.ForeignKey(ConstructionSite, on_delete=models.CASCADE)
  place_of_unloading = models.ForeignKey(ConstructionSite, on_delete=models.CASCADE)
  number_of_rounds = models.IntegerField(blank=True, null=True)

Самая большая проблема у меня с полями place_of_loading и place_of_unloading. Местом погрузки может быть строительная площадка, гравийный карьер, песчаный карьер и т.д., а местом разгрузки - строительная площадка или свалка. Поскольку у меня уже есть модель ConstructionSite, я хотел создать модели GravelPit, SandPit, Landfill и объединить их все в модели DailyPerformance.

Вот такая идея: Наши водители должны будут заполнять форму в конце рабочего дня, и я хочу, чтобы в выпадающем меню place_of_loading были значения из ConstructionSite, GravelPit и SandPit. То же самое относится и к месту_разгрузки.

  place_of_loading = models.ForeignKey(ConstructionSite, GravelPit, SandPit)
  place_of_unloading = models.ForeignKey(ConstructionSite, Landfill)

Я знаю, что это не работает, но хотел бы узнать, есть ли другое решение.

Вернуться на верх