47

Django 管理者では、モデル (請求書モデルなど) の独自のフォームをオーバーライドして実装したいと考えています。

請求書フォームに顧客名、製品名の自動入力フィールドが必要であり、カスタム検証 (顧客の与信限度額など) も行いたいと考えています。Django 管理者が提供するデフォルトのフォームをオーバーライドして、独自のフォームを実装するにはどうすればよいですか?

私はDjangoを初めて使用します。ポインタをいただければ幸いです。

4

2 に答える 2

61

ModelAdmin の form 属性を独自のフォーム クラスに設定することで、django のビルトイン admin のフォームをオーバーライドできます。見る:

  1. https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form
  2. https://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin

フォーム テンプレートを上書きすることも可能です - https://docs.djangoproject.com/en/dev/ref/contrib/admin/#custom-template-optionsをご覧ください。

特にオートコンプリートを探している場合は、https://github.com/crucialfelix/django-ajax-selectsをお勧めします

于 2012-04-06T09:16:10.270 に答える
29

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
于 2013-09-25T20:14:21.633 に答える