Bagaimana cara menyesuaikan tampilan model menggunakan contenttypes di admin?

Saya memiliki model ini:

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=".")

Saya mendaftarkan semua model untuk admin, dan saya membatalkan pendaftaran Grup, Pengguna, dan Situs. Masalahnya, ketika saya mengakses Attachment di admin, saya melihatnya ditampilkan seperti ini:

admin for attachment

Pada Content type pilih, saya melihat daftar ini:

select

Alasan Attachment memiliki GenericForeignKey adalah karena ProjectA dan ProjectB membutuhkan untuk mengaksesnya. Saya tahu bahwa ProjectA dan ProjectB identik, tetapi itu adalah persyaratan bahwa keduanya disimpan dalam 2 tabel terpisah. Bagaimana saya dapat membuat kelas Lampiran dapat digunakan dari admin? Saya tahu bagaimana menggunakan tipe konten dari tampilan normal, tetapi dari admin tidak.

Di kelas Lampiran saya hanya ingin memilih untuk Proyek A atau Proyek B, dan kemudian daftar semua Proyek A atau semua Proyek B , diikuti dengan file yang ingin saya lampirkan.

Apakah hal seperti itu mungkin dari Admin? Apakah saya perlu menunjukkan kolom ID Objek kepada pengguna?

6
задан Geo 13 June 2011 в 19:54
поделиться