获取所有内容类型

时间:2018-07-23 12:04:51

标签: django-models django-2.0 django-contenttypes

这可能是重复的,如果是的话,道歉。

我查看了许多提要和Django手册content_types,试图找到答案但无济于事(可能是由于我对内容类型的了解不清,并且没有正确阅读内容)。

我所缺少的是如何从主模型中获取所有不同类型的关联模型。例如

class MainModel(models.Model):
    title = models.CharField(max_length=255)
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey()

与“ MainModel”关联的两个模型:

class FirstModel(models.Model):
    ...
    main = GenericForeignKey(MainModel)




class SecondModel(models.Model):
       ...
       main = GenericForeignKey(MainModel)

如何从Main模型中获取FirstModel和SecondModel?

因此,我可以收集它们以显示在模板中。

仅供参考,某些情况下对于特定的关联可能不存在SecondModel。这就是为什么我需要从MainModel进行操作的原因,因为我不知道通用模型是否会一直存在。 (在我的实际代码中,有两个以上的东西)

会是这样吗?

example = ContentType.objects.get(MainModel)

我可能完全不正确地看待这个问题。主要目标是要有许多模型引用主模态,但能够从主模型中查询许多类型不明的数量和数量的模型。

1 个答案:

答案 0 :(得分:0)

看看我的答案here.,这是一个很好的示例,展示了如何显示父类中的相关对象。