Django: Как редактировать галерею, прикрепленную к модели проекта? - PullRequest
0 голосов
/ 20 января 2011

У меня есть модель проекта. У каждого проекта есть «галерея», а в каждой галерее «фото».

class Project:
 gallery = ForeignKey(Gallery)

class Gallery:
 photos = ManyToManyField(Photo)

class Photo:
 image = ImageField(...)

Я хочу, чтобы мои пользователи могли редактировать галерею и проект на одной странице. Не могли бы вы сказать мне, какие компоненты мне нужны, чтобы это произошло? Например, какой тип формы мне следует использовать и какую технику использовать, когда я обрабатываю форму с загруженными изображениями и все такое?

Что нужно учитывать, так это то, что я хочу показать фотографии, которые пользователь редактирует, с помощью html img-tag, а также file-tag, чтобы позволить ему заменить фотографию. Мне не нужен стандартный виджет m2m для django, который является просто множественным списком.

Не могли бы вы помочь мне понять это, потому что я просто не могу. Застрял здесь на три дня:)

Ответы [ 2 ]

0 голосов
/ 03 февраля 2011

Я не хотел использовать встроенный модуль администратора.Но я использовал фабрику форм-наборов от django.Это позволит мне предоставить набор запросов для набора форм (то есть фотографий в галерее).Затем я должен был предоставить небольшой настраиваемый класс formset для модели, а затем мне понадобилось обработать форму вручную, чтобы связать ее правильно с галереей и т. Д.

0 голосов
/ 20 января 2011

Вы можете изменить свою форму администратора галереи, используя 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)
...