0
目標はDjango管理パネルにカスタム入力とボタンを追加することです。それは、(緑でマークされた)画像上で説明されていますDjango admin - フィールドにコントロールを追加する
問題は、Djangoの管理者はそのようなものを表示するためにデータベースを使用していることです。インラインコンポーネントは、残りの行にこれらのコントロールがないため、ここには適合しません。あなたは、単に番号を入力して管理者を経由して、保存ヒット、このソリューションでは
from django.contrib.auth import forms
import datetime
class AddDaysForm(forms.ModelForm):
add_extra_days_to_subscription_expiry = forms.IntegerField(required=False)
class Meta:
fields = '__all__'
def __init__(self, *args, **kwargs):
instance = kwargs.get('instance')
if instance:
self.base_fields['add_extra_days_to_subscription_expiry'] = 0
forms.ModelForm.__init__(self, *args, **kwargs)
class SubscriptionAdmin(admin.ModelAdmin)
form = AddDaysForm
list_display = ('id', 'domain', 'domain_created',)
def save_model(self, request, obj, form, change):
if form.cleaned_data['add_extra_days_to_subscription_expiry'] != 0:
obj.subscription_expire = obj.subscription_expire + datetime.timedelta(days=form.cleaned_data['add_extra_days_to_subscription_expiry'])
obj.save()
、それはあなたのためにそれを追加します。
ボタンの代わりにカスタムフォームを使用する方が簡単でしょうか?私は以下の解決策を書いてみましょう。 – noahandthewhale