2009-12-02 5 views
4

기본 관리자와 함께 Flatpages를 사용하면 템플릿 입력란을 텍스트 입력에서 미리 정의 된 선택 사항이있는 라디오로 변경해야합니다. 내 응용 프로그램 중 하나를 사용하면이 작업을 쉽게 수행 할 수 있습니다. 모델의 선택 항목 특성 만 사용하면됩니다.Django Flatpages Admin의 필드 변경

필자는 몇 가지 시도를 해봤습니다. 필요한 경우 나중에 시도에 대한 세부 정보를 추가 할 것입니다.하지만 누구든지이 작업을 수행 할 수있는 좋은 방법을 알고 있습니까?

답변

14

기본 플랫 폼에서 상속하지만 사용자 지정 양식을 사용하는 사용자 지정 플랫 페이지 ModelAdmin 클래스를 정의합니다. 이 양식에서 원하는 위젯을 사용하여 필드를 재정의하십시오. 그런 다음 플랫 페이지 관리자의 등록을 취소하고 사용자 정의 클래스로 다시 등록하십시오.

from django.contrib.flatpages.admin import FlatPageAdmin, FlatpageForm 

class MyFlatpageForm(FlatpageForm): 
    template = forms.ChoiceField(choices=MY_CHOICES) 

class MyFlatPageAdmin(FlatPageAdmin): 
    form = MyFlatpageForm 

admin.site.unregister(FlatPage) 
admin.site.register(FlatPage, MyFlatPageAdmin) 
+0

고마워요! template_name을 template_name으로 변경해야했지만 작동했습니다. – aptwebapps

+2

나는 Daniel Roseman에게 대답 할 편지를 쓸 수 없다. 나는 그것을 위해 새로운 앱을 만들어야 할까? – robos85

+3

'from django.contrib.flatpages.models import FlatPage' – Tom

관련 문제