簡體   English   中英

覆蓋 Django 管理員中的表單

[英]Override a form in Django admin

在 Django admin 中,我想覆蓋並實現我自己的 model 表單(例如發票模型)。

我希望發票表格具有客戶名稱、產品名稱的自動填寫字段,我還想進行自定義驗證(例如客戶的信用額度)。 如何覆蓋 Django 管理員提供的默認表單並實現我自己的表單?

我是 Django 的新手,感謝任何指點。

您可以通過將 ModelAdmin 的表單屬性設置為您自己的表單 class 來為 django 的內置管理覆蓋 forms。請參閱:

  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

如何根據文檔覆蓋 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM