たとえば、選択したアイテムの特定のフィールドをXに設定するアクションを追加したい場合(例ではありませんが、説明するだけです)、Xをハードに反対に入力できるようにアクションを追加することはできますかコード化された?Djangoカスタム管理アクションにパラメータを追加できますか?
15
A
答えて
12
参照してください:Actions that Provide Intermediate Pages
をあなたは右チェンジページからそれを行うことはできませんが、あなたの中間ページに、ユーザーが値を入力できるようになる形を持つことができ、その後のためにその値を使用アクション。
4
Django 1.5では可能ですが少しハックします。私はそれが可能な他の古いDjangoのバージョンではわかりません。
独自のModelAdminサブクラスを作成します。 ModelAdminにはaction_form
というアトリビュートがあり、チェンジリストページのGo
ボタンの前に表示されているフォームを決定します。独自のフォームを作成し、ModelAdminサブクラスでaction_formとして設定することができます。これらの変更により
from django.contrib.admin.helpers import ActionForm
# ActionForm is the default form used by Django
# You can extend this class
class XForm(ActionForm):
x_field = forms.CharField()
class YourModelAdmin(admin.ModelAdmin):
action_form = XForm
、あなたはX
の値を置くことができるCharFieldですが、持っています。
アクション機能でx_field
を使用してください。
def set_x_on_objects(modeladmin, request, queryset):
for obj in queryset:
obj.something = request.POST['x_field']
# do whatever else you want
class YourModelAdmin(admin.ModelAdmin):
action_form = XForm
actions = [set_x_on_objects]