2017-08-14 4 views
2

私のdjango管理コンソールでは、ユーザーが「保存して別のものを追加」ボタンを押すと、フォームのフィールド値は最後に挿入された値のまま残りますが、可能である可能性があります。 誰かが私を助けることができますか?以下の線に沿ってDjango別の動作の変更を保存して追加する

答えて

2

何かがあなたを助ける必要があり、事前に

ありがとう:

class MyModelAdmin(admin.ModelAdmin): 
    def get_form(self, request, obj=None, **kwargs): 
     form = super(MyModelAdmin, self).get_form(request, obj, **kwargs) 

     latest_object = MyModel.objects.latest('created_at') # change this field to fit your model 

     form.base_fields['my_first_field_name'].initial = latest_object.my_first_field_name 
     form.base_fields['my_second_field_name'].initial = latest_object.my_second_field_name 

     return form 

はそれが役に立てば幸い!

+0

ありがとう、admin.pyファイルにコードを追加する必要がありますか?私は何かをインポートする必要がありますか?多くのありがとう –

+0

@ManuelSantiはい、admin.pyにあります。モデルをインポートし、必要に応じてコードを変更してください –

1

あなたはModelAdminあなたはこれが唯一存在しないオブジェクトのための新しい名前を付けて保存」、またはオブジェクトに「保存して別のものを追加」ボタンを変更します(here is the doc

を使用したいの内側オプションsave_as = Trueを追加することができます「保存して編集を続ける」ボタンを使用した後に作成したばかりです。

これにより、作成されたオブジェクトを使用してバリアントを作成することができます。

class ObjectAdmin(admin.ModelAdmin): 
    save_as = True 
+0

どこにコードを挿入する必要がありますか? admin.py?私は何かをインポートする必要がありますか?ありがとう –

+0

@ManuelSantiあなたが必要なモデルでは、admin.pyの中で(クラスは 'YourModelAdmin'のようなものになります) – PRMoureu

関連する問題