Django Admin基于ManyToMany关系选择对象

时间:2012-11-29 17:23:36

标签: django python-2.7 django-admin

我正在开发一个扩展Mezzanine项目的django应用程序。 Mezzanine有一个Gallery应用程序(照片)。我想创建“投资组合”页面,该页面充当着陆页,其中包含单个图像并链接到每个图库页面。

每个图库(图库)都可以有多个图像(GalleryImage)。我想通过管理员选择一个图库,然后选择要显示的图像。但是,我似乎无法弄清楚该怎么做。

这是我的模特:

class GalleriesThumb(models.Model):
    relatedlandingpage = models.ForeignKey(LandingPage)
    relatedgallery = models.ForeignKey(Galleries)
    thumb = models.ManyToManyField(GalleryImage)

    def __unicode__(self):
        return self.name

class Galleries(models.Model):
    landingpage = models.ForeignKey(LandingPage)
    tagline = models.CharField(max_length=100)
    galleries = models.ManyToManyField(Gallery)

    def __unicode__(self):
        return self.name
class LandingPage(models.Model):

    gallerytitle = models.CharField(max_length=200)

    def __unicode__(self):
        return self.name

我的管理员就像:

class GalleryInline(admin.InlineModelAdmin)
    model = Galleries
    model = GalleriesThumb
    list_display = galleries
    list_display = thumb

class LangingPageAdmin(admin.ModelAdmin):
    fieldsets = (
        (None, {
            'fields': ('gallerytitle')
        })
    inlines = [GalleryInline,]

我意识到这不会做我想要的,但是如何在与画廊相关的图像上获得list_display。我很确定它需要是一种方法,或者我采取完全错误的方法,如果所做的选择将定义页面上的内容。 (我意识到我也错过了我的字段来存储选择。)

如果这是一个愚蠢的问题,我很抱歉,但这是我的第一个现实世界尝试应用程序。

1 个答案:

答案 0 :(得分:0)

我认为此链接可以解决您的问题

Django 1.2.1 Inline Admin for Many To Many Fields     

class GalleryInline(admin.InlineModelAdmin)
    model = Galleries.galleries.through