wake-up-neo.com

Überschreibe ein Formular in Django admin

In Django admin möchte ich mein eigenes Formular für ein Modell (z. B. Rechnungsmodell) überschreiben und implementieren.

Ich möchte, dass das Rechnungsformular Felder zum automatischen Ausfüllen des Kundennamens und des Produktnamens enthält, und ich möchte auch eine benutzerdefinierte Validierung durchführen (z. B. Kreditlimit für einen Kunden). Wie kann ich das von Django admin bereitgestellte Standardformular überschreiben und mein eigenes implementieren?

Ich bin neu in Django, ich schätze alle Hinweise.

34
18bytes

Sie können Formulare für Djangos integrierten Administrator überschreiben, indem Sie das Formularattribut von ModelAdmin auf Ihre eigene Formularklasse setzen. Sehen:

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

Es ist auch möglich, Formularvorlagen zu überschreiben - siehe https://docs.djangoproject.com/en/dev/ref/contrib/admin/#custom-template-options

Wenn Sie speziell nach Autocomplete suchen, kann ich https://github.com/crucialfelix/Django-ajax-selects empfehlen

48
fest

So überschreiben Sie ein Formular im Django admin gemäß docs :

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
22
dan-klasson