Django:带有“通过”的 InlineAdmin 和 ManyToManyField
Posted
技术标签:
【中文标题】Django:带有“通过”的 InlineAdmin 和 ManyToManyField【英文标题】:Django: InlineAdmin and ManyToManyField with 'through' 【发布时间】: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 参数)可以在内联中编辑。我认为需要的是,链接对象的顺序参数和参数都可以在同一个内联中编辑。 【参考方案1】:看来这个问题已经在这里回答了:
Django admin - inline inlines (or, three model editing at once)
您需要为引用链接对象的内联创建自定义表单和模板。
【讨论】:
【参考方案2】:我可能不明白你的问题。你不能只使用:
类 ImageAdmin (admin.ModelAdmin)
inlines = (ImageGalleryAdmin,)
admin.site.register(Image, ImageAdmin)
【讨论】:
以上是关于Django:带有“通过”的 InlineAdmin 和 ManyToManyField的主要内容,如果未能解决你的问题,请参考以下文章