У меня есть эти модели:
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 отдельных таблицах. Как я мог сделать класс Attachment пригодным для использования от администратора? Я знаю, как использовать типы содержимого из обычных представлений, но от администратора нет.
В классе Attachment я хотел бы иметь только выбор для проекта A или проекта B, а затем список всех проектов A или всех проектов B, за которым следует файл, который я хочу прикрепить.
Возможна ли такая вещь от Админа? Нужно ли показывать пользователю столбец Object Id?