在 Django admin 中,我想为模型(例如 Invoice 模型)覆盖并实现我自己的表单。
我希望发票表单具有客户名称、产品名称的自动填写字段,并且我还想进行自定义验证(例如客户的信用额度)。如何覆盖 Django 管理员提供的默认表单并实现我自己的?
我是 Django 的新手,我很感激任何指示。
在 Django admin 中,我想为模型(例如 Invoice 模型)覆盖并实现我自己的表单。
我希望发票表单具有客户名称、产品名称的自动填写字段,并且我还想进行自定义验证(例如客户的信用额度)。如何覆盖 Django 管理员提供的默认表单并实现我自己的?
我是 Django 的新手,我很感激任何指示。
您可以通过将 ModelAdmin 的表单属性设置为您自己的表单类来覆盖 django 内置管理员的表单。看:
也可以覆盖表单模板 - 看看https://docs.djangoproject.com/en/dev/ref/contrib/admin/#custom-template-options
如果您专门寻找自动完成功能,我可以推荐https://github.com/crucialfelix/django-ajax-selects
如何根据文档覆盖 django 管理员中的表单:
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