Django:InlineAdmin和ManyToManyField与'通过'

时间:2010-12-03 13:37:00

标签: django django-admin manytomanyfield

我有一个简单的Gallery模型,它通过具有Image - 属性的表的多对多关系与ordering模型相关:< / p>

# 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 :(得分:0)

这个问题似乎已在这里得到解答:

Django admin - inline inlines (or, three model editing at once)

您需要为引用链接对象的内联创建自定义表单和模板。

答案 1 :(得分:-1)

我可能没有理解你的问题。你不能只使用:

  

类ImageAdmin(admin.ModelAdmin)

inlines = (ImageGalleryAdmin,)
     

admin.site.register(Image,ImageAdmin)