【发布时间】:2011-09-14 04:49:49
【问题描述】:
我有这些模型:
class App(models.Model):
name = models.CharField(max_length=100)
class ProjectA(models.Model):
name = models.CharField(max_length=100)
app = models.ForeignKey(App)
class ProjectB(ProjectA):
pass
class Attachment(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
project = generic.GenericForeignKey("content_type","object_id")
file = models.FileField(upload_to=".")
我正在为管理员注册所有模型,并且正在取消注册组、用户和站点。问题是,当我在管理员中访问附件时,我看到它呈现如下:
在内容类型选择中,我看到了这个列表:
Attachment 有 GenericForeignKey 的原因是因为 ProjectA 和 ProjectB 都需要访问它。我知道 ProjectA 和 ProjectB 是相同的,但要求它们存储在 2 个单独的表中。我怎样才能让管理员可以使用附件类?我知道如何使用普通视图中的内容类型,但管理员不知道。
在附件类中,我只想选择项目 A 或项目 B,然后是所有项目 A 或所有项目 B 的列表,然后是我要附加的文件。
管理员可以这样做吗?我需要向用户显示对象 ID 列吗?
【问题讨论】:
标签: django django-models django-admin django-contenttypes