2010-12-03 11 views
5

estoy teniendo un modelo simple Gallery, que se relaciona con un modelo Image a través de una relación de muchos a muchos a través de una tabla que tiene un ordering -attribute:Django: InlineAdmin y ManyToManyField con 'a'

# models.py 
class Image(models.Model): 
    .... 

class Gallery(models.Model): 
    images = models.ManyToManyField(Image, through='ImageGallery') 
    .... 

class ImageGallery(models.Model) 
    image = models.ForeignKey(Image) 
    gallery = models.ForeignKey(Gallery) 
    ordering = models.PositiveIntegerField(_('ordering'), default=0) 

# admin.py 
class ImageGalleryAdmin(admin.ModelAdmin): 
    model = ImageGallery 

class GalleryAdmin(admin.ModelAdmin): 
    inlines = (ImageGalleryAdmin,) 

Estoy editando la tabla 'a través' a través de un administrador en línea.

Lo que me gustaría hacer es poder cargar/editar las imágenes directamente en el administrador en línea, así que me gustaría saber si alguien conoce un fragmento existente, que me permite editar el campo de la 'through'-table junto con los campos del modelo referenciado (la imagen), sin necesidad de editar la clave externa, seleccione ....

+0

me gustaría lo mismo ... Simplemente para aclarar la pregunta un tanto, utilizando las líneas estándar de django, los atributos del modelo final no están disponibles; solo los atributos del modelo 'a través' (por ejemplo, el parámetro de orden) pueden ser editado en línea. Creo que lo que se desea es que tanto el parámetro de orden como los parámetros del objeto vinculado sean editables en la misma línea. – bjw

Respuesta

-1

Es posible que no haya entendido su pregunta. ¿No puedes usar:

ImageAdmin clase (admin.ModelAdmin)

inlines = (ImageGalleryAdmin,) 

admin.site.register (Imagen, ImageAdmin)

Cuestiones relacionadas