2009-08-21 2 views
6

표준 변경 목록을 중간 단계로 사용하는 장고 관리자 인터페이스에 대한 사용자 정의보기를 만들고 있습니다. 이것은 변경 목록 페이지 H1이 '변경 할 개체 선택'이라는 사실을 제외하고는 잘 작동합니다. '변경'은 내 사용자 정의보기에서 사용자가 수행 할 작업에 적합한 동사가 아닙니다.Django 관리자 변경 목록 제목 텍스트 변경

변경 목록 페이지 (change_list.htmlchange_list_results.html)의 레이아웃을 제어하는 ​​django.contrib.admin 템플릿을 찾았지만 어디에서 제목을 제공하는지 찾을 수 없습니다. 나는 그것이 어떤 곳에서 볼 때 전달되는 변수라고 생각하고 있나?

오해의 소지가있는 텍스트로이 텍스트를 어떻게 재정의 할 수 있습니까? 'Select object to change'대신 'Select object'를 선택 하시겠습니까? 모든 변경 목록보기에서 사용자 지정을 시도하는 특정 항목뿐만 아니라 변경하는 것이 좋습니다. 가능하다면 django.contrib.admin 코드를 수정하는 대신에 재정의 (override) 솔루션을 선호합니다.

업데이트 : 변경 목록에 대한 책임이있는보기가 있습니다. main.pydjango\contrib\admin\views입니다. 변수는 라인 69 (Django 1.0)에서 self.title입니다. 나는

self.title = (self.is_popup and ugettext('Select %s') % force_unicode(self.opts.verbose_name) or ugettext('Select %s to change') % force_unicode(self.opts.verbose_name)) 

난 아직도하지 않는 동일한 결과를 달성하는 더 좋은 방법을 듣고 정말 관심이있을 것

self.title = (self.is_popup and ugettext('Select %s') % force_unicode(self.opts.verbose_name) or ugettext('Select %s') % force_unicode(self.opts.verbose_name)) 

를 읽고 내가이 줄을 편집하여 찾고 있어요 결과를 acheived 한 django.contrib.admin 코드를 해킹해야합니다. 이미 제목을 원하는대로 사용할 수있는 옵션이있는 것처럼 보이지만이를 트리거하는 방법을 모르겠습니다.

답변

2

이미 ChangeList 사용자 지정 티켓 : http://code.djangoproject.com/ticket/9749이 있습니다. 이렇게하면 관리 응용 프로그램의 많은 추가 측면을 변경할 수 있습니다. 불행히도 목표를 달성 할 수있는 확실한 방법은 없습니다. 장고의 현재 버전

+0

흠, 그 패치는 꽤 유망 해 보입니다. 그것이 그것이되기를 바랍니다. 내가 SVN을 사용하기보다는 생산 코드를 고수하려고하기 때문에 불행히도 지금은 그다지 좋지 않습니다. 무게를 재어 주셔서 감사합니다. 해킹을 사용해야하고 향후 업그레이드를 위해 변경 사항을 문서화 할 때주의해야합니다. 그것은 제가 생각한 업그레이드로 이전 코드로 리셋되는 경우 중요하지 않습니다. –

0

:

class CustomChangeList(django.contrib.admin.views.main.ChangeList): 
    def __init__(self, *args, **kwargs): 
     super().__init__(*args, **kwargs) 
     self.title = 'My Cool Title' 

class MyAdmin(ModelAdmin): 
    def get_changelist(self, request, **kwargs): 
     return CustomChangeList 
6

여전히 관련 확실하지만, 이것은 changelist_view 방법에 대한 extra_content를 전달하는 것입니다 할 수있는 다른 방법이 없습니다. 예 :

from django.contrib import admin 

class MyCustomAdmin(admin.ModelAdmin): 

    def changelist_view(self, request, extra_context=None): 
     extra_context = {'title': 'Change this for a custom title.'} 
     return super(MyCustomAdmin, self).changelist_view(request, extra_context=extra_context)