我有两个班级:
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
管理员列表下的最佳方法是什么?
答案 0 :(得分:1)
这是正常行为。从数据库的角度来看,PubMedArticle
的主键只是引用Article
表。因此对于PubMedArticle表中的每条记录必须是Article表中的记录。
现在给管理员。有两种方式:
1)制作文章模型abstarct - 如果您不需要所有文章的唯一主键,这是一个好主意。 2)自定义django管理列表查询。