0

有一个项目models.py如下所示:

class Page(models.Model)
    #fields

class News(Page)
    #no fields

当我想检索一个Page或一个News页面时,我会执行以下操作:

page = get_object_or_404(Page, id=page_id)

但是,当我给出这个:page.__class__我总是得到这个:main.models.Page

有没有办法知道一个页面实际上是一个Page类还是一个News类而不检查是否page_id存在于 中News

4

2 回答 2

1

仅给定该值,除了尝试检索它(例如 with ,并在它确实存在的情况下捕获异常)之外,除了表之外,page_id没有办法测试该 ID 值是否作为表中的条目存在不存在)或直接询问经理。针对模型管理器的查询将返回实例 - 您必须先验地知道您想要的视图,或者测试是否存在。NewsPagepage.newsDoesNotExistNewsPagePageNews

于 2013-10-07T06:48:29.187 回答
-1

你可以看看isinstance

page = get_object_or_404(Page, id=page_id)    
isinstance(page, News):
于 2013-10-07T06:40:13.087 回答