2011-01-20 4 views
0

나는 '프로젝트'모델을 가지고있다. 각 프로젝트에는 '갤러리'가 있으며 각 갤러리에는 '사진'이 있습니다.Django : 프로젝트 모델에 연결된 갤러리를 편집하는 방법은 무엇입니까?

class Project: 
gallery = ForeignKey(Gallery) 

class Gallery: 
photos = ManyToManyField(Photo) 

class Photo: 
image = ImageField(...) 

내 사용자가 갤러리와 프로젝트를 같은 페이지에서 편집 할 수있게하고 싶습니다. 이 일을하기 위해 필요한 구성 요소를 말해 줄 수 있습니까? 어떤 형식의 형식을 사용해야하며 업로드 된 이미지와 모든 형식으로 양식을 처리 할 때 어떤 기법을 사용해야합니까?

내가 고려해야 할 점은 사용자가 사진을 바꾸도록 html img-tag와 file-tag를 사용하여 편집중인 사진을 보여주고 싶다는 것입니다. 장고의 기본 m2m 위젯은 다중 선택 목록 일뿐입니다.

내가 간단히 설명 할 수 없기 때문에 이것을 이해하도록 도와 주시겠습니까? 여기 3 일 동안 붙어 있습니다 :)

+0

질문이 너무 광범위하고 모호합니다. 내장 Django 관리 인터페이스를 수정하려고합니까? 아니면 새 뷰를 만들고 있습니까? –

답변

0

나는이 관리 모듈에 내장 사용하지 않았다. 하지만 django에 의해 formset 공장을 사용했습니다. formset에 쿼리 세트를 제공합니다 (갤러리의 사진). 그런 다음 작은 사용자 지정된 모델 formset 클래스를 제공해야합니다. 그런 다음 필자는 갤러리와 같은 링크를 사용하기 위해 양식을 수동으로 처리해야했습니다.

0

프로젝트를 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) 
+0

하지만 관리 앱을 사용해야합니까? 관리자 앱없이 어떻게 할 수 있습니까? – mrmclovin

관련 문제