2014-04-22 8 views
11

Ho un layout di modello di Django che sembra qualcosa di simile:Django admin - miscelazione più inlines modello in un'unica interfaccia di amministrazione

class Author(models.Model): 
    name = models.CharField(max_length=50, unique=True) 

class Publication(models.Model): 
    author = models.ForeignKey(Author)   

    #Some shared fields 

    class Meta: 
     abstract = True 

class Book(Publication): 
    #Book specific fields 

class Poem(Publication): 
    #Poem specific fields 

In generale, mi piacerebbe mostrare le informazioni elencate per autore e allineati secondo alcuni informazioni, come pub_date, in modo che l'utente finale potrebbe vedere qualcosa di simile:

Autore A:

  • Poem 1
  • Poem 2
  • Book 1
  • Poem 3
  • Libro 2

Autore B:

  • Book 1
  • Book 2
  • Poem 1
  • Poem 2
  • Libro 3

E così via. Posso capire come visualizzarli sul front-end (posso usare django-polimorfico o semplicemente combinare author.book_set.all() e author.poem_set.all() in una singola lista e ordinarli). Ma non riesco a capire come implementarlo nel sito di amministrazione. Vorrei che la struttura di essere esattamente lo stesso come sopra - in modo che quando clicco su un Autore che avrei avuto:

  • linea per Poem 1
  • linea per Poem 2
  • linea per Book 1
  • linea per Poem 3
  • linea per Book 2

Se ho semplicemente collegare Poesia e Book come TabularInlines, sarebbero essere separato fuori nel fieldsets separate, come così:

  • linea per Poem 1
  • linea per Poem 2
  • linea per Poem 3

  • linea per Book 1

  • linea per Book 2

Ma penso che sia importante per la funzionalità che siano mescolati insieme in un singolo campo et (con i campi specifici per la classe di un altro bambino in grigio o non presenti per ogni inline). Qualcuno ha qualche idea su come implementarlo?

risposta

Problemi correlati