Django: InlineAdmin и ManyToManyField с «сквозным» - PullRequest
5 голосов
/ 03 декабря 2010

У меня есть простая Gallery модель, которая связана с Image моделью через отношение «многие ко многим» через таблицу с атрибутом ordering:

# 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,)

Я редактирую сквозную таблицу через встроенного администратора.

То, что я хотел бы сделать, это иметь возможность загружать / редактировать изображения непосредственно во встроенном администраторе, поэтому я хотел бы знать, знает ли кто-нибудь существующий фрагмент, который позволяет мне редактировать поле ' Сквозной таблицы вместе с полями ссылочной модели (изображение), не нужно редактировать внешний ключ, выберите ....

Ответы [ 2 ]

0 голосов
/ 12 апреля 2013

Похоже, на этот вопрос уже был дан ответ:

Django admin - встроенные строки (или редактирование трех моделей одновременно)

Вам необходимо создать пользовательскую форму и шаблон для встроенного объекта, который ссылается на связанный объект.

0 голосов
/ 15 февраля 2011

Возможно, я не понял вашего вопроса.Вы не можете просто использовать:

класс ImageAdmin (admin.ModelAdmin)

inlines = (ImageGalleryAdmin,)

admin.site.register (Image, ImageAdmin)

...