是否可以根据 Django 中的情况让模型引用许多其他模型?

问题描述

老实说,我什至不知道如何表达我的问题,但我认为举个例子可能会有所帮助。

我恭敬地用自己的模型疯狂了三个应用程序。应用 1、应用 2、应用 3。我想创建一个新的应用程序(报告),它将报告我的每个其他应用程序(App1、App2、App3)。以我目前的知识,我的 Reports 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,related_name='reported_app2',blank=True)

    app3_reported = models.ForeignKey(
        App3,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,related_name='reported_app_is',blank=True)

我的应用程序在第一个实现中运行良好,我只想知道是否有更好的方法。另外请让我知道这是否有意义,我正在努力寻找正确的措辞。

解决方法

您可以使用内容类型框架。这是一个 link 供您参考