Честно говоря, я не знаю, как даже сформулировать свой вопрос, но я думаю, что пример может помочь.
У меня есть три приложения с их собственными моделями с уважением. Приложение1, Приложение2, Приложение3. Я хочу создать новое приложение (отчеты), которое будет сообщать о каждом из моих других приложений (App1, App2, App3). С моими текущими знаниями у меня есть следующее в моих отчетах models.py
class Reports(models.Model):
name = models.CharField(max_length=150, blank=True)
app1_reported = models.ForeignKey(
App1, on_delete=models.CASCADE, related_name='reported_app1', blank=True)
app2_reported = models.ForeignKey(
App2, on_delete=models.CASCADE, related_name='reported_app2', blank=True)
app3_reported = models.ForeignKey(
App3, on_delete=models.CASCADE, related_name='reported_app3', blank=True)
Есть ли способ создать в моей модели отчетов одну ссылку, которая могла бы ссылаться либо на App1, либо на App2, либо на App3? что-то типа:
class Reports(models.Model):
name = models.CharField(max_length=150, blank=True)
reported = models.ForeignKey(
App1 or App2 or App3, on_delete=models.CASCADE, related_name='reported_app_is', blank=True)
Мое приложение отлично работает с первой реализацией, я просто хотел бы знать, есть ли лучший способ. Также, пожалуйста, дайте мне знать, если это имеет смысл, я борюсь с правильной формулировкой.