2012-11-03 3 views
0

양식이나 정적 데이터에 대한 사용자 정의 필드에 대해서만 이야기하는 것이 아니라 실제로 자체 코드가있는 섹션을 추가하는 방법에 대해 설명합니다. 필드 세트에 새로운 항목이 있지만 새 필드가 아니라 사용자의 활동에 대한 작은 보고서를 제공합니다.admin/auth/user/(x) 페이지에 맞춤 섹션을 추가하는 방법은 무엇입니까?

사실이 질문은 모델의 변경 페이지를 나타냅니다. Django 문서는이 페이지의 템플릿을 덮어 쓰는 방법을 보여줍니다.하지만 파이썬 코드를 추가하지 않으면 어떤 이점이 있습니까?

답변

1

기본 템플릿과 기본보기를 덮어 쓸 수 있습니다.

장고에는 관리자 레코드를 표시하기위한 두 가지보기 및 템플릿이 있습니다. 하나는 새 것을 만들고 하나는 기존 것을 표시하고 편집하기위한 것입니다. 관련 방법은 다음과 같습니다

이 관련 재정의 전망을 준비하는 방법의 예를 표시하고 변경하기위한 새로운 기록을 추가 (촬영 Add/Change View 링크

class MyModelAdmin(admin.ModelAdmin): 

    # A template for a very customized change view: 
    change_form_template = 'admin/myapp/extras/openstreetmap_change_form.html' 

    def get_osm_info(self): 
     # ... 
     pass 

    def change_view(self, request, object_id, form_url='', extra_context=None): 
     extra_context = extra_context or {} 
     extra_context['osm_data'] = self.get_osm_info() 
     return super(MyModelAdmin, self).change_view(request, object_id, 
      form_url, extra_context=extra_context) 

당신은 django 기본 django를 확인하고 Django 소스 코드에서 템플릿을 변경하십시오 (그리고 아마도 새로운 템플릿으로 복사하고 나중에 편집하는 것입니다). 그러면 사용자 정의 템플릿을 준비하는 방법을 알 수 있습니다.

마지막 주, 절대 편집 django 소스 코드에서 django 소스 코드를 업데이트하면 편집을 무시하거나 문제를 일으킬 수 있으므로 django는 소스에서 직접 템플릿 또는 가상 코드를 직접 편집 할 수 있습니다.

+0

감사합니다. 날 구해 줬어. –

0

장고 관리자는 템플릿을 재정의하는 것보다 매우 확장 성이 뛰어납니다.

설명서의 ModelAdmin methods 섹션을 확인하십시오. ModelAdmin의 동작을 거의 수정할 수 있습니다.

custom form validationModelForms 설명서를 참조하십시오. ModelAdmin에 첨부 된 모델의 사용자 지정 양식이 사용자에게 다른 수준의 맞춤 설정을 제공하므로이 설명서를 참조하십시오.

관련 문제