Django:如何编辑附加到项目模型的图库?

时间:2011-01-20 13:03:43

标签: django forms gallery relation

我有一个'项目'模型。每个项目都有一个“图库”,每个图库都有“照片”。

class Project:
 gallery = ForeignKey(Gallery)

class Gallery:
 photos = ManyToManyField(Photo)

class Photo:
 image = ImageField(...)

我想让我的用户在同一页面上编辑图库和项目。你能告诉我我需要哪些组件才能实现这一目标吗?就像我应该使用哪种类型的表单以及使用上传的图像处理表单时使用的技术?

需要考虑的是,我想用html img-tag和file-tag显示用户正在编辑的照片,让他替换照片。我不想要django的默认m2m-widget,它只是一个多选列表。

你能帮我解决这个问题,因为我根本做不到。被困在这里三天:)

2 个答案:

答案 0 :(得分:0)

您可以使用Project作为admin.TabularInline修改您的图库管理员表单。

像这样:

  

admin.py

# -*- encoding: utf-8 -*-
from models import Project, Gallery, Photo
from django.contrib import admin

class ProjectInline(admin.TabularInline)
    model = Project

class GalleryAdmin(admin.ModelAdmin):
    inlines = [ProjectInline]

admin.site.register(Gallery, GalleryAdmin)

答案 1 :(得分:0)

我不想使用内置的管理模块。但是我使用了django的formset工厂。它将让我为formset提供一个查询集(即图库中的照片)。然后我不得不提供一个小的自定义模型formset类,然后我的视图我几乎必须手动处理表单,以便将它正确链接到库和..