3
장고 관리 양식에 업로드 된 파일을 처리해야합니다. 양식에 파일 업로드 필드를 추가했습니다.django ModelAdmin의 인라인 데이터에 액세스하는 방법
class ExampleInline(admin.TabularInline):
model = OtherExample
extra = 1
class ExampleForm(forms.ModelForm):
filedata = forms.FileField()
class Meta:
model = ExampleModel
class ExampleModelAdmin(admin.ModelAdmin):
form = ExampleForm
inlines = [ExampleInline,]
이 양식을 렌더링하고 싶은대로 정확하게 렌더링합니다. 요청에서 반환 된 데이터가 정확히 내가 원하는 것입니다.
문제는 인라인의 내용에 액세스하려고하는 것입니다.
class ExampleAdmin(admin.ModelAdmin):
...
def save_model(self, Request, obj, form, change):
the_file = form.cleaned_data['filedata']
# do amazing things to contents of file
이 시점에서 나는 사용자가 인라인에서 선택한 결과를 참조하고자합니다. OtherExample에 대해 그들이 선택한 것이 무엇이든간에.
양식을 통해 어떻게 액세스합니까? 나는 요청을 거치지 않고 그것을 기꺼이 원한다. 나는 또한 검사 할 의향이 있습니다. 양식을 저장 한 후에 호출 되어도 객체를 두 번 저장하게 될 것이지만 save_related(self,request, form, formset, change)
감사합니다. 나는 'save_related'를 사용해야 만했지만 'formset'에서'OtherExample'은 어디에 있습니까? – ctjctj2
인라인 formset에서 데이터를 읽는다면 각 양식에 대한'cleaned_data' dict를 보길 원할 것입니다. 또는 내장 된'save_related'와'save_formset'을 완전히 오버라이드하여 formset 저장 결과를 캡쳐 할 수 있습니다.이 설정은 변경되거나 생성 된'OtherExample' 인스턴스가 될 것입니다. –
그 것이었다 :'formset [0] .cleaned_data'는'save_related()'에 필요한 데이터를 가지고 있습니다. 고맙습니다 – ctjctj2