【问题标题】:Django: InlineAdmin and ManyToManyField with 'through'Django:带有“通过”的 InlineAdmin 和 ManyToManyField
【发布时间】:2011-05-19 18:21:08
【问题描述】:

我有一个简单的Gallery 模型,它通过具有ordering-attribute 的表通过多对多关系与Image 模型相关:

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

我正在通过内联管理员编辑“通过”表。

我想做的是能够直接在内联管理中上传/编辑图像,所以我想知道是否有人知道现有的 sn-p,它允许我编辑字段'through'-table 连同引用模型(图像)的字段,不需要编辑外键选择....

【问题讨论】:

  • 我想要同样的东西......只是为了稍微澄清一下这个问题,使用标准 django 内联,最终模型的属性不可用 - 只有“通过”模型的属性(例如order 参数)可以在内联中编辑。我认为需要的是,链接对象的顺序参数和参数都可以在同一个内联中编辑。

标签: django django-admin manytomanyfield


【解决方案1】:

看来这个问题已经在这里回答了:

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

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

【讨论】:

    【解决方案2】:

    我可能不明白你的问题。你不能只使用:

    类 ImageAdmin (admin.ModelAdmin)

    inlines = (ImageGalleryAdmin,)
    

    admin.site.register(Image, ImageAdmin)

    【讨论】:

      猜你喜欢
      • 2019-12-04
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 2021-03-19
      • 2013-02-24
      相关资源
      最近更新 更多