Django 管理者では、モデル (請求書モデルなど) の独自のフォームをオーバーライドして実装したいと考えています。
請求書フォームに顧客名、製品名の自動入力フィールドが必要であり、カスタム検証 (顧客の与信限度額など) も行いたいと考えています。Django 管理者が提供するデフォルトのフォームをオーバーライドして、独自のフォームを実装するにはどうすればよいですか?
私はDjangoを初めて使用します。ポインタをいただければ幸いです。
Django 管理者では、モデル (請求書モデルなど) の独自のフォームをオーバーライドして実装したいと考えています。
請求書フォームに顧客名、製品名の自動入力フィールドが必要であり、カスタム検証 (顧客の与信限度額など) も行いたいと考えています。Django 管理者が提供するデフォルトのフォームをオーバーライドして、独自のフォームを実装するにはどうすればよいですか?
私はDjangoを初めて使用します。ポインタをいただければ幸いです。
ModelAdmin の form 属性を独自のフォーム クラスに設定することで、django のビルトイン admin のフォームをオーバーライドできます。見る:
フォーム テンプレートを上書きすることも可能です - https://docs.djangoproject.com/en/dev/ref/contrib/admin/#custom-template-optionsをご覧ください。
特にオートコンプリートを探している場合は、https://github.com/crucialfelix/django-ajax-selectsをお勧めします
docsに従ってdjango adminのフォームをオーバーライドする方法:
from django import forms
from django.contrib import admin
from myapp.models import Person
class PersonForm(forms.ModelForm):
class Meta:
model = Person
exclude = ['name']
class PersonAdmin(admin.ModelAdmin):
exclude = ['age']
form = PersonForm