2009-12-22 9 views
8

tengo estos modelos:Django sitio de administración de revertir línea ForeignKey

(pseudocódigo)

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

Outline:  
    //data 

OutlineFile:  
    //different data 

La situación es que cualquier curso puede tener un esquema asociado a él, y/o un OutlineFile, o ninguno . Un esquema se puede asociar con cursos múltiples, de manera similar un archivo de esquema se puede asociar con cursos múltiples. Sin embargo, un curso solo tendrá como máximo uno de cada uno.

Lo que quiero es que la página de administración de cambio de curso muestre todos los campos del curso y un menú desplegable para cada uno de los siguientes: esquema y archivo de esquema. Si se selecciona uno, quiero que los campos para ese Esquema se muestren y se puedan modificar, al igual que un campo en línea.

¿Debo reestructurar mis modelos de alguna manera, o ya están estructurados adecuadamente? ¿Hay alguna forma de hacer lo que quiero dentro de los límites del sistema de líneas actual?

Por último, si no es posible, ¿dónde empiezo a hacerlo de manera personalizada?

+2

duplicado de: http://stackoverflow.com/questions/6419248/inline-like-solution-for-django-admin-where-admin-contains-foreignkey-to-other-m – Anentropic

Respuesta

1

Lo están haciendo al revés:

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 

Al crear las formas std, este modelo de estructura creará una lista desplegable como se especifica de forma predeterminada.

Cuestiones relacionadas