2009-08-21 14 views
6

標準の変更リストを暫定ステージとして使用するDjango管理インターフェイス用のカスタムビューを作成しています。変更リストのページH1が「変更するオブジェクトを選択」であることを除けば、これは問題なく機能します。 「変更」は、ユーザーがカスタムビューで実行するアクションの正しい動詞ではありません。Djangoの変更管理リストのタイトルテキスト

変更リストページ(change_list.htmlchange_list_results.html)のレイアウトを制御するdjango.contrib.adminテンプレートが見つかりましたが、タイトルの提供元が見つかりません。私はそれがどこかのビューによって渡される変数だと思いますか?

このテキストを誤解を招くことのないようにするにはどうすればよいですか? 「変更するオブジェクトを選択」ではなく「オブジェクトを選択」ですか?カスタマイズしたい特定のものだけでなく、すべての変更リストビューで変更することもできます。可能であれば、django.contrib.adminコードの変更とは対照的に、オーバーライドである解決策を好むでしょう。

更新:変更リストの責任を負うビューが見つかりました。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) 
関連する問題