Чтобы создать форму с initial полями в Django admin, вам потребуется определить классы моделей и административные формы. Возможно, вам придется создать также административный класс для вашей модели.
1. Определите административную форму:
- Создайте файл forms.py в папке вашего приложения (если его нет, создайте его).
- Импортируйте необходимые модули:
from django import forms from .models import YourModel
- Определите форму на основе модели:
class YourModelForm(forms.ModelForm): class Meta: model = YourModel fields = '__all__' # или перечислите необходимые поля как список
- Добавьте дополнительные поля или измените поведение формы по вашему усмотрению.
- Чтобы добавить initial значения, вы можете передать их в аргументе initial
вашей формы:
class YourModelForm(forms.ModelForm): initial_field = forms.CharField(initial='initial value') # ... class Meta: model = YourModel fields = '__all__'
2. Создайте административный класс для вашей модели:
- Откройте файл admin.py в папке вашего приложения (если его нет, создайте его).
- Импортируйте необходимые модули:
from django.contrib import admin from .models import YourModel from .forms import YourModelForm
- Определите административный класс:
class YourModelAdmin(admin.ModelAdmin): form = YourModelForm
- Если вы хотите, чтобы форма отображалась сразу после добавления или изменения записи, добавьте аргумент add_form_template
или change_form_template
:
class YourModelAdmin(admin.ModelAdmin): form = YourModelForm change_form_template = 'admin/yourapp/your_change_form.html'
Создайте шаблон (your_change_form.html), а затем настройте его по своему усмотрению.
3. Зарегистрируйте вашу модель и административный класс:
- В файле admin.py добавьте следующий код:
admin.site.register(YourModel, YourModelAdmin)
Теперь при открытии формы добавления или изменения записи в административной панели Django вы увидите форму с указанными initial значениями.