DoggieMurr
@DoggieMurr
Python Enthusiast

Как сделать форму в django admin с initial полями?

Приветствую!
В джанго админке есть стандартные кнопки: Сохранить и Сохранить и добавить еще
651d61959e658544562512.png

Как сделать что бы при заполнении формы, нажимая на кнопку Сохранить и добавить еще данные сохранялись, меня редиректило на новую форму для создания записи, где уже будут заполненные поля с предыдущей модели.

Вот мой пример кода
@admin.register(models.Location)
class LocationAdmin(admin.ModelAdmin):
    list_display = ('id', 'name', 'color', 'priority')
    list_per_page = 25
    search_fields = ('name', 'color', 'priority')

    def save_model(self, request: HttpRequest, obj, form, change) -> None:
        if form.data.get('_addanother') == 'Зберегти і додати інше':
            ModelForm = form.__class__
            form = ModelForm(initial=obj.__dict__)
            super().save_model(request, obj, form, change)
        else:
            super().save_model(request, obj, form, change)
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
sergey_1990
@sergey_1990
1
В классе админ
def get_form(self, request, obj=None, **kwargs):
        form = super(<<ClassName>>, self).get_form(request, obj, **kwargs)
        И  делай здесь что нужно как с обычной формой .....
        #if request.GET and request.GET['product_id']:
          #product_id = request.GET['product_id']
          #product = Product.objects.get(id=product_id)
          # form.base_fields['delivery_add'].initial = request.user.address
        return form
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы