0

我有一个“项目”模型。每个项目都有一个“画廊”,每个画廊都有“照片”。

class Project:
 gallery = ForeignKey(Gallery)

class Gallery:
 photos = ManyToManyField(Photo)

class Photo:
 image = ImageField(...)

我想让我的用户在同一页面上编辑画廊和项目。你能告诉我我需要哪些组件来实现这一点吗?就像我应该使用哪种类型的表格以及在处理带有上传图像的表格时使用什么技术?

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

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

4

2 回答 2

0

您可以使用 Project 作为 admin.TabularInline 来修改您的 Gallery 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)
于 2011-01-20T14:13:42.943 回答
0

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

于 2011-02-03T20:10:34.877 回答