0

我有两节课:

class Article(ContentAsset):

    title =  models.CharField(max_length=2000)
    author =  models.CharField(max_length=2000, blank=True)
    source = models.CharField(max_length=2000, default="")
    datePublished = models.DateField(default=datetime.now)

    def __unicode__(self):
        return self.title

class PubMedArticle(Article):
    pubMedID = models.CharField(max_length=100)
    abstract = models.TextField(max_length=20000)

所有 PubMedArticle 实例在管理界面中出现两次——在所有PubMedArticle对象列表和所有对象列表下Article。这是正常行为吗?我认为子类通常不会出现在其超类的管理列表中。确保这些PubMedArticle对象仅显示在PubMedArticle管理员列表下的最佳方法是什么?

4

1 回答 1

1

这是正常行为。从数据库的角度来看,表的主键PubMedArticle只是指 Article表。因此,对于 PubMedArticle 表中的每条记录,都必须是 Article 表中的一条记录。

现在到管理员。有两种方式:

1)使文章模型抽象 - 如果您不需要所有文章的唯一主键,这是一个好主意。2) 自定义 django 管理员列表查询。

于 2013-04-12T21:19:42.657 回答