2009-12-22 13 views
8

Ho questi modelli:Django amministratore del sito invertire linea ForeignKey

(pseudocodice)

Course: 
    ForeignKey(Outline, null=True, blank=True) 
    ForeignKey(OutlineFile, null=True, blank=True) 

Outline:  
    //data 

OutlineFile:  
    //different data 

La situazione è che ogni corso può avere un contorno ad esso associati, e/o un OutlineFile, o nessuno dei due . Una struttura può essere associata a più corsi, analogamente a OutlineFile può essere associato a più corsi. Tuttavia, un corso avrà sempre al massimo uno di ciascuno.

Quello che voglio è che la pagina admin del cambio del corso mostri tutti i campi del corso e un menu a tendina per ciascun profilo e profilo. Se viene selezionato uno, voglio che i campi di quella struttura siano visualizzati e modificabili, proprio come un campo in linea.

Devo ristrutturare i miei modelli in qualche modo o sono già strutturati adeguatamente? C'è comunque da fare ciò che voglio entro i confini dell'attuale sistema di inline?

Infine, se non è possibile, da dove comincio a farlo in modo personalizzato?

+2

duplicato di: http://stackoverflow.com/questions/6419248/inline-like-solution-for-django-admin-where-admin-contains-overign-to-other-m – Anentropic

risposta

1

Lo state facendo il contrario:

class Course(models.Model): 
    # Foreign key is defined only in related fields 

class Outline(models.Model):  
    course = models.ForeignKey(Course, 
    related_name='outlines', # Or whatever you choose 
    null=True, # These two mean your FK relation is basically optional 
    blank=True 
    ) 

class OutlineFile(models.Model):  
    # Same structure as above 

Quando si creano le forme std, questa struttura del modello creerà un menu a discesa, come specificato per impostazione predefinita.

Problemi correlati