1

ドキュメントによると:

http://django-grappelli.readthedocs.org/en/latest/customization.html#rearrange-inlines

プレースホルダーの 2 つのクラスは重要です。まず、クラスのプレースホルダーが必要です。2 番目のクラスは、インライン グループの ID と一致する必要があります。

すべて順調です。インラインを正常にセットアップできました。問題は今です。グラッペリは「インライン グループの ID」をどこで取得しますか?慰め。

簡単に言うと、grappelli が使用している element-id を変更したいのです。現在、オブジェクト名自体を取得して小文字の名前に変換し、最後にセットを追加しているように見えます。「インライングループのID」を上書きするアクセス権はありますか?

また、grappelli がこれをどのように (またはどこで) 行っているかについては 100% 正確にはわかりません。

どんな助けでも大歓迎です。

4

2 に答える 2

2

HTMLページのインライン要素のidです。デフォルトの HTML インライン要素の id を確認できます。

 <div id="[related_name of ForeignKey]-group">

例: モデル "MyModel2" の場合、ForeignKey は次のようになります。

my_model_1 = models.ForeignKey(MyModel1, related_name='my_model_2')

次に、ID は「my_model_2-group」である必要があります。

于 2015-08-04T08:05:44.657 に答える
0

インライン グループの ID は、grappelli/templates/admin/edit_inline、stacked.html の 5 行目、または tabular.html の 6 行目に設定されます (使用しているインラインのタイプによって異なります)。

id="{{ inline_admin_formset.formset.prefix }}-group" >

ファイル (stacked.html または tabular.html) をテンプレート ディレクトリにコピーし、変数 "template" をファイルの新しい場所に設定することで、これをオーバーライドできます。

# admin.py

class MyModelInline(admin.StackedInline):
    template = 'path/to/stacked.html'
    ...

次に、stacked.html などで必要なものを編集します。

これがベスト プラクティスの方法であるかどうかはわかりませんが、django チュートリアルで行われていることと似ています。

于 2014-07-04T18:53:35.040 に答える