2016-06-28 2 views
0

관리자 페이지에서 새 객체 추가 페이지가 표시되는 방식을 변경하고 싶습니다. 필자는 입력란을 변경하고 싶지는 않지만 입력란을 정리하고 싶습니다. 예를 들어, 파선에 2 개의 입력란을 입력 한 다음 몇 개의 단락을 입력 한 다음 다른 2 개의 입력란을 입력하십시오. 나는 약 을 읽고 add_form_template 내 추측은이 양식을 정의하지 않고 템플릿을 변경할 수 있도록되어 있다고 생각합니다. 필드를 표시하지 않는 시도입니다. 양식을 정의하고 전달해야하는지 여부를 아는 사람이 있습니까? 폼을 전달해야한다면 add_form_template은 무엇을 위해 사용됩니까?django - 관리자 템플릿을 재정의하는 방법

from settings import BASE_DIR 
import os 

@admin.register(Owner) 
class OwnerAdmin(admin.ModelAdmin): 
    add_form_template = os.path.join(BASE_DIR, 'dealer/templates/add_owner.html') 
    list_display = ('name', 'country', 'city', 'car') 


@admin.register(Car) 
class CarAdmin(admin.ModelAdmin): 
    list_display = ('name',) 

//----- add_owner.html 
{% extends "admin/base.html" %} 

{% block content %} 
    <h1>New Owner</h1> 
    <form method="POST" class="post-form">{% csrf_token %} 
     {{ form.as_p }} 
     <button type="submit" class="save btn btn-default">Create</button> 
    </form> 
{% endblock %} 
+0

'add_form_template'에 대해서 - 템플릿에 절대 경로를 사용하면 안됩니다. 따라서 템플릿을'dealer/templates/dealer/add_owner_form.html'에 파일로 만들고'dealer/add_owner_form.html'을'add_form_template'으로 사용해야합니다. – ohrstrom

답변

1

필드의 레이아웃을 사용자 지정하기 위해 관리자 템플릿을 변경할 필요가 없습니다. 대신 fieldsets을 사용하십시오 :

# admin.py 
@admin.register(Owner) 
class OwnerAdmin(admin.ModelAdmin): 
    # ... 
    fieldsets = (
     (None, { 
      'fields': (
       ('name', 'country'), 
       'city' 
       ) 
     }), 
     ('Another Fieldset', { 
      'description': 'Some information to display...', 
      'fields': (
       'car', 
      ), 
     }), 
    ) 
+0

매우 유용합니다. 특정 글꼴, 색상 등이있는 복잡한 모양과 똑같이 보이도록 사용자 정의하는 방법을 알고 싶지만 직접 템플릿을 사용해야합니다. – max

+0

또한 수평으로 만들지 않고 세로로 그룹화합니다. – max

+0

추가 관리 라이브러리/스킨/etc를 사용하고 있습니까? 기본 Django 설치에서는'name'과'country'가 가로로 정렬되어 표시됩니다. – ohrstrom

관련 문제